MangopayVaultSDK 1.0.8

MangopayVaultSDK 1.0.8

Elikem Savie 维护。



  • 作者:Elikem Savie
  • By Elikem Savie

Vault SDK - iOS 集成指南

简介

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

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

  • 避免敏感的卡详细信息流经您的系统
  • 享受 PCI-DSS 符合性
  • 接收持续的支持和更新

/icons/square-alternate_lightgray.svg

**先决条件**

要使用 Mangopay Vault SDK,您需要以下内容:

  • 一个 Mangopay ClientId 和 API 密钥
  • 一个要注册卡的用(有关测试卡,请参阅 测试 - 支付方式
  • iOS 13+
  • Xcode 12.2
  • Swift 5.3+

安装

Swift Package Manager (推荐使用)

按照以下步骤将包集成到您的Xcode项目中:

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

CocoaPod

打开您的 Podfile 文件并添加以下内容:

pod 'MangoPayVault'

在您的 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并选择您的环境(沙盒或生产环境)。

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

为令牌化提供数据

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

  • Mangopay API之前返回的卡注册数据(CardRegistration
  • 用户在应用中输入的信用卡详细信息(CardInfo)(有关测试卡,请参阅测试 - 支付方式

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会自动更新卡注册对象,为您提供可用来支付的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):

相关资源