VinIDPay iOS SDK
VinIDPay iOS SDK帮助您通过VinID iOS应用程序处理支付。
要求
- Xcode 10+和iOS 9.0+基础SDK
- iOS 9.0+部署目标
安装
Cocoapods
如果您项目尚未设置Cocoapods,请找到项目文件夹,然后运行以下命令:
pod init
然后将在您的Podfile中添加VinIDPaySDK
pod 'VinIDPaySDK'
之后,使用以下命令安装或更新您的pods:
pod update
手动安装
- 将
VinIDPaySDK.framework
复制并嵌入到您的项目中。 - 由于这是一个通用框架,在分发到AppStore之前,请确保从您的应用中删除未使用的架构。
沙盒模式
如果要将您的应用与VinID UAT应用进行集成测试,您需要启用沙盒模式。在您的AppDelegate
中添加以下内容:
VinIDPay.sharedInstance.sandboxMode = true
sandboxMode
的默认值是false
。
应用切换设置
更新查询方案
为了将用户从您的应用重定向到VinID应用以启动支付过程,您必须更新您的Info.plist
文件以支持查询VinID应用的scheme。该scheme是应用包ID,因此如果您使用沙盒模式,请确保添加VinID UAT应用的包ID。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>com.vingroup.VinIDApp</string>
<string>com.vingroup.VinIDApp.sandbox</string>
</array>
注册URL类型
为了在支付过程中将用户从VinID应用重定向回您的应用,您必须注册一个URL类型,并配置您的应用以处理返回URL。
- 在Xcode中,单击项目导航器中的项目,然后转到App目标 > 信息 > URL类型
- 单击[+]添加新的URL类型
- 在URL方案下,输入您的应用切换返回URL方案。此方案必须以您的应用Bundle ID开头,并专门用于VinID应用切换返回。例如,如果应用包ID是
com.your-company.Your-App
,则您的URL方案可以是com.your-company.Your-App.vinidpay
。
重要:如果您有多个应用目标,请确保为所有目标添加返回URL类型。
然后在您的AppDelegate
的application:didFinishLaunchingWithOptions:
实现中使用setReturnURLScheme:
与您设置的URL类型。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
VinIDPay.sharedInstance.returnURLScheme = "com.your-company.Your-App.vinidpay"
return true
}
预付金结果
在您的 AppDelegate
中,确保将返回的URL传递给VinIDPay以处理支付结果
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
VinIDPay.sharedInstance.handleReturnURL(url)
return true
}
如果您的应用使用 SceneDelegate
,必须更新代理以处理返回的URL
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
for context in URLContexts {
VinIDPay.sharedInstance.handleReturnURL(context.url)
}
}
处理支付
要使用VinID应用开始支付过程,您需要已经使用VinID创建了一个订单并获得了订单的id和签名。通过将它们发送到VinIDPay进行支付过程
VinIDPay.sharedInstance.pay(orderId: id, signature: signature, extraData: nil) { (orderId, status) in
switch status {
case .success:
print("payment successful!")
case .aborted:
print("user aborted payment")
case .failure:
print("payment failed")
}
}
请确保根据从VinIDPay SDK返回的支付结果更新您的应用行为。
检查应用安装
如果需要检查设备上是否安装了VinID应用并且可以用于支付,请检查 hasVinIDAppInstalled
let hasInstalled = VinIDPay.sharedInstance.hasVinIDAppInstalled
导航至AppStore
VinIDPay SDK也支持将用户导航到AppStore
VinIDPay.sharedInstance.navigateToAppStore()
示例
您可以在本仓库中找到Swift和Objective C的示例应用程序,以测试与VinIDPay的集成。
要运行它,请运行 pod install
,然后在Xcode中打开 .xcworkspace
文件。