VinIDPaySDK 1.0.5

VinIDPaySDK 1.0.5

Huong Do 维护。



  • 作者:
  • Huong Do

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。

  1. 在Xcode中,单击项目导航器中的项目,然后转到App目标 > 信息 > URL类型
  2. 单击[+]添加新的URL类型
  3. 在URL方案下,输入您的应用切换返回URL方案。此方案必须以您的应用Bundle ID开头,并专门用于VinID应用切换返回。例如,如果应用包ID是com.your-company.Your-App,则您的URL方案可以是com.your-company.Your-App.vinidpay

重要:如果您有多个应用目标,请确保为所有目标添加返回URL类型。

然后在您的AppDelegateapplication: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 文件。