Vault SDK - iOS 集成指南

简介

Mangopay Vault SDK 允许您安全地将最终用户的支付卡进行令牌化,以便在您的应用程序中使用。令牌化的卡是该卡的虚拟和安全版本,可用于支付。

强烈建议您使用 Mangopay Vault SDK,而不是直接集成 API 端点。 这样做,您可以

/icons/square-alternate_lightgray.svg

**先决条件**

要使用 Mangopay Vault SDK,您需要

安装

Swift Package Manager(推荐)

请按照以下步骤将软件包集成到您的 Xcode 项目中,使用 SPM,

  1. 打开您的 Xcode 项目,然后转到“File”>“Swift Packages”>“Add Package Dependency”。
  2. 在弹出的对话框中,输入仓库 URL https://github.com/Mangopay/mangopay-ios-vault-sdk
  3. 通过选中相应的复选框选择 MangoPayVault 软件包。
  4. 按照屏幕上的说明继续完成集成。

CocoaPod

打开您的 podfile 并添加

pod 'MangopayVaultSDK'

在您的 podfile 上方添加以下源

source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Mangopay/mangopay-ios-vault-sdk'

运行安装命令

$pod install

创建卡注册

在您的后端,通过 Mangopay API 创建卡注册,使用最终用户的 Id 作为 UserId

在此阶段,您还必须定义卡的货币和类型。

/icons/square-alternate_gray.svg

**POST** /v2.01/`ClientId`/cardregistrations
{
    "Tag": "Created with the Mangopay Vault SDK",
    "UserId": "142036728",
    "CardType": "CB_VISA_MASTERCARD",
    "Currency": "EUR"
}

查看参数详情 →

API 响应

{
    "Id": "193020188",
    "Tag": null,
    "CreationDate": 1686147148,
    "UserId": "193020185",
    "AccessKey": "1X0m87dmM2LiwFgxPLBJ",
    "PreregistrationData": "XBDYiG8w9PrylPS01KmupZunmK2QRHKIC-yUF6il3aIpAnKba1TGkR9VJe5lHjHt2ddFLVXdicolcUIkv_kKEA",
    "RegistrationData": null,
    "CardId": null,
    "CardType": "CB_VISA_MASTERCARD",
    "CardRegistrationURL": "https://homologation-webpayment.payline.com/webpayment/getToken",
    "ResultCode": null,
    "ResultMessage": null,
    "Currency": "EUR",
    "Status": "CREATED"
}

响应中获得的数据将用于下面定义的 CardRegistration 中。

初始化 SDK

使用您的 `ClientId` 初始化 SDK,选择您的环境(沙盒或生产环境)和您的租户(欧盟或英国)。

import MangopayVaultSDK


MangoPayVault.initialize(clientId: clientId, environment: SANDBOX | PRODUCTION , tenant: eu | uk)

提供令牌化数据

SDK 需要以下信息来令牌化卡

CardRegistration

属性 类型 描述
id 字符串 卡注册的唯一标识符。
accessKey 字符串 令牌化卡时使用的安全值。
cardRegistrationURL 字符串 卡详细信息发送到此 URL 以进行令牌化。
preregistrationData 字符串 传递到 cardRegistrationURL 的特定值。
let cardRegistration  = CardRegistration(
            id: id,
                        accessKey: accessKey, 
                        preregistrationData: preregistrationData, 
                        cardRegistrationURL: cardRegistrationURL, 
  )

CardInfo

属性 类型 描述
cardNumber 字符串 要令牌化的卡号,不带任何分隔符。
cardExpirationDate 字符串(格式:“MMYY”) 卡的到期日期。
cardCvx 字符串 卡验证码(在卡背面,通常为 3 位数字)。
let cardInfo = CardInfo(
cardNumber: "4970107111111119",
cardExpirationDate: "1224",
cardCvx: "123"
)

令牌化卡

您现在可以使用先前使用前端 SDK 获得的卡数据来令牌化卡。

SDK 会自动更新 Card Registration 对象,为您提供可用于付款的 CardId

tokenizeCard

MangoPayVault.tokenizeCard(
  card: card,
  cardRegistration: cardRegistration) { card, error in
      guard let _ = card else {
          self.showLoader(false)
          self.showAlert(with: error?.localizedDescription ?? "", title: "Failed ❌")
          return
      }
      self.showLoader(false)
      self.showAlert(with: "", title: "Successful 🎉")
  }

管理卡

您可以使用以下端点来管理卡

进行银行卡支付

使用以下对象进行支付时,需要已注册的卡 (CardId)

相关资源