PikassaSDK 0.1.1

PikassaSDK 0.1.1

Pikassa io 维护。



  • PIMPAY KASSA LLC

Pikassa SDK

接入依赖关系

  1. 安装 CocoaPods
gem install cocoapods
  1. 创建 Podfile 文件

CocoaPods 提供了 pod init 命令,用于创建带有默认设置的 Podfile。

  1. 在 Podfile 中添加依赖关系
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target 'Your Target Name' do
  pod 'PikassaSDK',
    :git => 'https://github.com/pikassa-payments/pikassa-sdk-ios.git',
    :tag => 'tag'
end

Your Target Name - Xcode 中您的应用程序的靶目标名称。
tag - SDK 版本。您可以在 GitHub 的 releases 部分找到最新的版本。

  1. 运行 pod install 命令

示例用法

通过 Pikassa 对象操作库,该对象提供两种方法:setup(), sendPaymentData()

  1. 首先需要调用 setup 方法
Pikassa.setup("your_api_key")

其中,"your_api_key" - API 访问密钥。

  1. 初始化后,可以调用发送数据的方法
func sendPaymentData(
    method: PaymentMethods,
    invoiceId: String,
    didSuccessBlock: ((PayResponse) -> Void)?,
    didFailBlock: ((Error) -> Void)?)

其中,method - 支持的付费方式之一(如下所述)invoiceId - 支付账单编号 didSuccessBlock - 成功传输卡片数据,成功时从服务器返回信息(PayResponse),didFailBlock - 传输数据时出错,返回标准错误(Error)。

  1. 目前支持两种付费方法 - 使用银行卡(带有 BankCardDetails 已准备的结构)和自定义字段
public enum PaymentMethods {
    case bankCard(details: BankCardDetails)
    
    case custom(details: [String: String])
}
  1. BankCardDetails 字段描述 pan - 卡号 cardHolder - 卡主;expYear - 卡片到期年份(格式 "YY");expMonth - 卡片到期月份(格式 "mm");cvc - 翻面代码(3 位数字);

示例调用

let cardDetails: BankCardDetails = BankCardDetails(
            pan: "4444 4444 4444 4444",
            cardHolder: "CARD HOLDER",
            cvc: "999",
            expYear: "2024",
            expMonth: "11")
        
        Pikassa.sendPaymentData(
            method: PaymentMethods.bankCard(details: cardDetails),
            invoiceId: "<invoice id>",
            didSuccessBlock: { ... },
            didFailBlock: { ... })
  1. 对于调用具有自定义字段的支付数据传输,必须在传递的字典中存在 "paymentMethod" 参数
        Pikassa.sendPaymentData(
            method: PaymentMethods.custom([ "paymentMethod": "Mobile", "phone" : "+79999999999"]),
            invoiceId: "<invoice id>",
            didSuccessBlock: { ... },
            didFailBlock: { ... })

支付方法列表

  1. 在成功执行数据发送后,didSuccessBlock 会收到 PayResponse 响应,其结构如下
public struct PayResponse: Decodable {
    public let uuid: String
    public let requestId: String
    public let redirect: Redirect?
}

uuid - 支付标识符;requestId - 请求标识符;redirect - 用户跳转链接。例如,对于信用卡,可能需要将用户跳转到3DS输入码的页面。如果支付不需要身份验证,则可能为零。如果该字段非零,则结构如下

public struct Redirect: Decodable {
    public let url: String
    public let method: String             //метод оплаты
    public let params: [[String: String]] //дополнительные возвращаемые параметры
}

此处的主要参数是url,其中包含确认支付需要跳转的跳转链接。

  1. 如果送出数据失败,则会在didFailBlock中接收到标准的错误接口Error。

如果它导致PikassaError类,那么错误原因可以通过code字段(可能的错误码)来确定

在其他情况下,也按常规系统错误处理(例如,对于网络错误,引发NSError并将domain与NSURLErrorDomain比较)