Mangopay Vault SDK 允许您安全地将最终用户的支付卡进行令牌化,以便在您的应用程序中使用。令牌化的卡是该卡的虚拟和安全版本,可用于支付。
强烈建议您使用 Mangopay Vault SDK,而不是直接集成 API 端点。 这样做,您可以
要使用 Mangopay Vault SDK,您需要
ClientId
和 API 密钥请按照以下步骤将软件包集成到您的 Xcode 项目中,使用 SPM,
MangoPayVault
软件包。打开您的 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
。
在此阶段,您还必须定义卡的货币和类型。
**POST** /v2.01/`ClientId`/cardregistrations{
"Tag": "Created with the Mangopay Vault SDK",
"UserId": "142036728",
"CardType": "CB_VISA_MASTERCARD",
"Currency": "EUR"
}
{
"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
中。
使用您的 `ClientId` 初始化 SDK,选择您的环境(沙盒或生产环境)和您的租户(欧盟或英国)。
import MangopayVaultSDK
MangoPayVault.initialize(clientId: clientId, environment: SANDBOX | PRODUCTION , tenant: eu | uk)
SDK 需要以下信息来令牌化卡
CardRegistration
)CardInfo
)(有关测试卡,请参阅 测试 - 支付方式)属性 | 类型 | 描述 |
---|---|---|
id | 字符串 | 卡注册的唯一标识符。 |
accessKey | 字符串 | 令牌化卡时使用的安全值。 |
cardRegistrationURL | 字符串 | 卡详细信息发送到此 URL 以进行令牌化。 |
preregistrationData | 字符串 | 传递到 cardRegistrationURL 的特定值。 |
let cardRegistration = CardRegistration(
id: id,
accessKey: accessKey,
preregistrationData: preregistrationData,
cardRegistrationURL: cardRegistrationURL,
)
属性 | 类型 | 描述 |
---|---|---|
cardNumber | 字符串 | 要令牌化的卡号,不带任何分隔符。 |
cardExpirationDate | 字符串(格式:“MMYY”) | 卡的到期日期。 |
cardCvx | 字符串 | 卡验证码(在卡背面,通常为 3 位数字)。 |
let cardInfo = CardInfo(
cardNumber: "4970107111111119",
cardExpirationDate: "1224",
cardCvx: "123"
)
您现在可以使用先前使用前端 SDK 获得的卡数据来令牌化卡。
SDK 会自动更新 Card Registration 对象,为您提供可用于付款的 CardId
。
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
)