Easy Pay 库提供对 Easy Pay API 的访问,以实现与 iOS 应用的流畅集成。
- Xcode 15 或更高版本
- 适用于 iOS 13.0 或更高版本
-
先决条件 - 从 Easy Pay HMAC 秘钥和 API 密钥获取
-
配置 Easy Pay 类,例如在支付模块或 AppDelegate (didFinishLaunchingWithOptions) 中
EasyPay.shared.configureSecrets(apiKey: "YOURAPIKEY",
hmacSecret: "YOURHMACSECRET")
- 请注意,Easy Pay 初始化过程中会开始下载证书的过程。在下载完成之前进行任何调用将导致错误(RsaCertificateError.failedToLoadCertificateData)。您可以通过访问以下枚举来检查下载状态
EasyPay.shared.certificateStatus
- 使用 Swift Package Manager 进行设置
.package(url: "https://github.com/Easy-Pay-Solutions/Mobile-SDK-IOS.git", from: "0.1.0")
- 使用 Cocoapods 进行设置
pod 'EasyPay'
EasyPay.shared.configureSecrets(apiKey: String, hmacSecret: String)
EasyPay.shared.loadCertificate(_ completion: @escaping (Result<Data, Error>) -> Void)
1. 充值信用卡 - CreditCardSale_Manual Easy Pay API 文档。
当手动输入信用卡详情时,处理信用卡销售。详情包括卡号、到期日、CVV、持卡人姓名和地址。
EasyPay.apiClient.chargeCreditCard(request: CardSaleManualRequest,
completion: @escaping (Result<CreditCardSaleResponse, Error>) -> Void)
- ChargeCreditCard
- TransactionRequest
- creditCardInfo: CreditCardInfo
- accountHolder: AccountHolder
- endCustomer: EndCustomer?
- amounts: Amounts
- purchItems: PurchItems
- merchantId: Int
- TransactionRequest
- ChargeCreditCard
- CardSaleManualResponseModel
2. 查询年度同意 - ConsentAnnual_Query Easy Pay API 文档。
一个返回年度同意详细信息的查询。根据发送的查询,可能返回单个或多个同意。
EasyPay.apiClient.listAnnualConsents(request: ConsentAnnualListingRequest,
completion: @escaping (Result<ListingConsentAnnualResponse, Error>) -> Void)
- ListAnnualConsents
- AnnualQueryHelper
- merchantId: String
- customerReferenceId: String?
- endDate: Date?
- AnnualQueryHelper
- ListAnnualConsents
- ConsentAnnualListingResponseModel
3. 创建年度同意 - ConsentAnnual_Create_MAN Easy Pay API 文档。
此方法通过发送包含卡号、到期日、CVV 和持卡人联系信息的信用卡详情来创建年度同意。它不会通过阅读器设备刷卡创建。
EasyPay.apiClient.createAnnualConsent(request: CreateConsentAnnualRequest,
completion: @escaping (Result<CreateConsentAnnualResponse, Error>) -> Void)
- CreateAnnualConsent
- CreateConsentAnnualManualRequestModel
- creditCardInfo: CreditCardInfo
- consentAnnualCreate: CreateConsentAnnual
- accountHolder: AccountHolder
- endCustomer: AnnualEndCustomer?
- CreateConsentAnnualManualRequestModel
- CreateAnnualConsent
- CreateConsentAnnualResponseModel
4. 取消年度同意 - ConsentAnnual_Cancel Easy Pay API 文档。
取消年度同意。在取消完成后,从系统中删除信用卡数据。
EasyPay.apiClient.cancelAnnualConsent(request: CancelConsentAnnualRequest,
completion: @escaping (Result<CancelConsentAnnualResponse, Error>) -> Void)
- CancelAnnualConsent
- CancelConsentAnnualManualRequestModel
- consentId: Int
- CancelConsentAnnualManualRequestModel
- CancelAnnualConsent
- CancelConsentAnnualResponseModel
5. 处理年度同意支付 - ConsentAnnual_ProcPayment Easy Pay API 文档。
此方法使用存储的信用卡处理现有同意的支付。
EasyPay.apiClient.processPaymentAnnualConsent(request: ProcessPaymentAnnualRequest,
completion: @escaping (Result<ProcessPaymentAnnualResponse, Error>) -> Void)
- ProcessPaymentAnnualConsent
- ProcessPaymentAnnualRequestModel
- consentId: Int
- processAmount: String
- ProcessPaymentAnnualRequestModel
- ProcessPaymentAnnualConsent
- ProcessPaymentAnnualResponseModel
SDK中包含名为SecureTextField的组件,旨在确保信用卡详细信息输入的安全性。它是UITextField的子类,可以实现所需风格的自由定制。
设置时需要配置证书,一旦下载到本地,即可加密信用卡数据。
nameOfYourTextField.setupConfig(EasyPay.shared.config)
要接收需要发送到API的加密卡字符串,可以使用以下方法
nameOfYourTextField.encryptCardData()
响应必须以预期的顺序和格式进行处理,否则可能会出现非预期行为。
if response.data.errorMessage != "" && response.data.errorCode != 0 {
//This indicates an error which was handled on the EasyPay servers, consume the ErrCode and the ErrMsg
return
} else if response.data.functionOk == true && response.data.txApproved == false {
//This indicates a declined authorization, display the TXID, RspMsg (friendly decline message), also the decline Code (TxnCode)
} else {
//Transaction has been approved, display the TXID, and approval code (also in TXNCODE)
}
对于所有其他调用,您将按相同的方式消费响应。如果没有TxApproved标志,则可以省略最后的评估。
错误名称 | 建议解决方案 |
---|---|
failedToLoadCertificateData | 检查证书状态,等待下载完成后继续调用,手动重新下载 |
failedToCreateCertificate | 联系Easy Pay |
failedToExtractPublicKey | 联系Easy Pay |
错误名称 | 建议解决方案 |
---|---|
missingSessionKeyOrExpired | 检查是否提供了正确的API密钥和hmac密钥,联系Easy Pay获取更新的密钥 |
错误名称 | 建议解决方案 |
---|---|
unsuccesfullRequest | 检查HTTP状态码 |
noDataReceived | 后端数据为空,请联系Easy Pay |
dataDecodingFailure | 后端数据未正确解码,请联系Easy Pay |
invalidCertificatePathURL | 联系Easy Pay |
语义版本控制遵循三部分版本号:MAJOR.MINOR.PATCH。
当您进行不兼容的API更改时,增加
- MAJOR版本;
- MINOR版本当您以向后兼容的方式添加功能时;
- PATCH版本当您进行向后兼容的缺陷修复时。