Digio iOS UPI SDK 集成指南
概览
本指南提供了将 Digio UPI SDK 集成到您的 iOS 应用程序中的逐步说明。Digio UPI SDK 使将统一支付接口 (UPI) 功能无缝集成到您的应用程序中成为可能,允许用户进行 UPI 交易。
注意:Digio SDK 支持 iOS 版本 13.0 及以上。
开始使用
步骤 1: Digio upi 通过 CocoaPods 提供。要安装它,请在 Podfile 中添加以下行
pod 'DigioUpi'
步骤 2: 运行
pod install
步骤 3: 导入 Digio UPI Module
import DigioUpi
步骤 4: 启动 digio Builder 并传递所需数据。
func startDigio() {
do {
let digio = try DigioUPI.Builder()
.setEnvironment(environment: .PRODUCTION)
.setId(id: "nachId/kycId")
.clientKeys(clientId: "Your_clientId", clientSecret: "Your_clientSecret")
.setServiceType(serviceType: .MANDATE)
.build()
digio.startDigio()
}catch {
print("digio_exception \(error.localizedDescription)")
}
}
步骤 5: 在您的视图中初始化 DigioCallback 以观察响应和事件
- SwiftUI 在您的视图中定义以下内容
@ObservedObject var digioCallback = DigioCallback.shared
- Swift 在您的 ViewController 中定义以下全局变量
private var transactionObserver: Any?
private var transactionEventsObserver: Any?
步骤 6: 将 DigioCallback 注册为观察 SUCCESS/FAILURE/事件的响应。
- 在视图体的内实现观察者以从框架中获取响应
func observeDigioCallBack(){
if let transactionStatus = digioCallback.transaction{
switch transactionStatus {
case .success(let response):
let _ = print("digio_success --> \(response.description)")
case .failure(let response):
let _ = print("digio_failure -->\(response.description)")
case .partial(let response):
let _ = print("\(response.description)")
}
}
/** Optional : To observe user journey for analytics purpose **/
if let event = digioCallback.transactionEvents{
switch event {
case .onTransactionEvent(let events):
let _ = print("digio_event --> \(events.description)")
}
}
}
- 在
viewDidLoad
内实现观察者以从框架中获取响应
func observeDigioCallBack() {
let digioCallback = DigioCallback.shared
transactionObserver = digioCallback.$transaction.sink { [weak self] transaction in
switch transaction{
case .success(let response):
print("digio_success--> \(response.description)")
case .failure(let response):
print("digio_failure--> \(response.description)")
case .partial(let response):
print("digio_partial--> \(response.description)")
case .none:
break
}
}
/** Optional : To observe user journey for analytics purpose **/
transactionEventsObserver = digioCallback.$transactionEvents.sink { [weak self] transactionEvents in
switch transactionEvents{
case .onTransactionEvent(let events):
print("digio_event --> \(events.description)")
case .none:
break
}
}
}
通过在ViewController
的viewDidLoad
函数外部调用以下内容来从ViewController
中清除观察者。这仅适用于Swift。
deinit {
// Release memory when the view controller is deallocated
transactionObserver = nil
transactionEventsObserver = nil
}
第7步:在iOS应用的Info.plist文件中添加LSApplicationQueriesSchemes
<key>LSApplicationQueriesSchemes</key>
<array>
<string>phonepe</string>
<string>gpay</string>
<string>paytmmp</string>
<string>bhim</string>
<string>upi</string>
<string>ppe</string>
</array>
参数和类型
参数 | 类型 | 描述 |
---|---|---|
clientId clientSecret |
字符串 |
必需。由Digio提供的clientId和clientSecret密钥 |
setId |
字符串 |
必需。你的Mandate的Nach Id或Reverse penny drop的KYC ID |
PRODUCTION SANDBOX |
Digio环境 |
必需。环境可以是SANDBOX或PRODUCTION |
MANDATE REVERSE_PENNY_DROP |
Digio服务 |
必需。Digio服务可以是MANDATE或REVERSE_PENNY_DROP |
错误代码和描述
代码 | 描述 |
---|---|
1103 |
SUCCESS |
1104 |
FAILURE |
1105 |
CANCELLED |
1108 |
PARTIAL |
1106 |
UPI应用未找到 |
响应示例
状态 | 响应 |
---|---|
事件 |
Digio事件响应(action = DIGIO_INITIATED, screen = UPI_PAGE) |
SUCCESS |
Digio响应(id= ENA23101017504882619RVM5Y1DTYPEUP, message= Mandate 注册成功, statusCode= 1103, status= register_success, crash_report= null ) |
FAILURE |
Digio响应(id= ENA23101017504882619RVM5Y1DTYPEUP, message= 交易已取消, statusCode= 1105, status= partial, crash_report= null ) |
PARTIAL |
Digio响应(id= ENA231012193700713FA5VYQRZT6916UP, message= Mandate部分创建, statusCode= 1108, status= partial, crash_report= null ) |
许可证
支持
如有支持需要,请通过邮箱 [email protected] 联系