EveryPay iOS SDK
概述
EveryPay SDK 有两种支付流程:
- 替代支付方式 (APM) 流程
APM 屏幕显示预配置的卡片详细信息表单,用户必须输入其卡片信息以执行支付。 - 卡片支付流程
在卡片支付屏幕上,会打开全屏 WebView,并在其中打开关联的payment_link
。
注意! 如果您的服务器在非安全(http)域名上运行,您必须在您的 Info.plist 文件中添加以下项,以便 SDK 正常工作。否则 ATS 将会因 TLS 握手而发出警告。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
需求
everyPay SDK 使用 NSURLSession 需要 iOS 8 或更高版本。
SDK 版本管理及 EveryPay API 版本映射
EveryPay API 自 v3 版本起,仅对主要版本进行增量修改,例如 v2、v3、v4 等。
SDK 版本具有 主要.次要.补丁
的语义
- 主要:对应 SDK 自身的重大变更(例如,付款流程的更改)
- 次要:对应 EveryPay API 版本
- 补丁:对应 SDK 中的任何非破坏性更改。
示例映射
- SDK
3.3.*
-> APIv3
集成 SDK
使用 CocoaPods
将 'everyPay-ios' 添加到 podfile,并在需要的地方包含 SDKPaymentKit.h。
pod 'everyPay-ios', '~> 3.3'
手动操作
将文件夹 sdk 添加到您的项目中,并在需要的地方包含 SDKPaymentKit.h。
配置 SDK 参数
在 APIConnect.h 中将 kAPIUserName、kAPISecret、kBaseURL 和 kToken 修改为您的需求。
static NSString *const kAPIUserName = YOUR_USER_NAME;
static NSString *const kAPISecret = YOUR_PASSWORD;
static NSString *const kBaseURL = YOUR_URL;
static NSString *const kToken = YOUR_TOKEN;
开始每付付款
NSString *host = @"https://igw-demo.every-pay.com"; // get from Setting page
NSString *apiUsername = @"7a40a7d7e0b9b13d"; //get from API
NSString *mobileToken = @"2589e754dbaada212901039c7a08275e84777c42"; //get from API
NSString *currency = @"EUR"; //get from API
NSString *paymentLink = @"https://igw-demo.every-pay.com/lp/76c78d/fofrnq?method_source=card"; //get from API
NSString *amount = @"10"; //get from API
NSString *paymentType = @"card"; //get from API
SDKPaymentKit *sdkPayment = [SDKPaymentKit initWithUserName:apiUsername andHost:host andAmount:amount andCurrency:currency];
[sdkPayment paymentWithMobileToken:mobileToken andPaymentLink:paymentLink andPaymentType:paymentType andDelegate:self];
注意:自3.3.0版本以来,每付对象的初始化已更改。首先您需要调用[SDKPaymentKit initWithUserName:apiUsername andHost:host andAmount:amount andCurrency:currency];
创建一个新的每付对象,例如在您的付款中
SDKPaymentKit *sdkPayment = [SDKPaymentKit initWithUserName:apiUsername andHost:host andAmount:amount andCurrency:currency];
apiUsername 是商户的用户名。
host 是每付GW的主机,例如igw-demo.every-pay.com/
amount 是交易金额,使用两位小数的十进制数,例如10.55
currency 是处理账户的货币
如何集成支付流程
当用户准备好开始且已通过initv3方法配置SDK时,我们可以通过以下方式启动支付流程
[sdkPayment paymentWithMobileToken:mobileToken andPaymentLink:paymentLink andPaymentType:paymentType andDelegate:self];
paymentLink 是支付链接。
paymentType 是支付流程的类型。
mobileToken 是仅在卡支付流程中使用的令牌。
此SDK有两个支付流程
卡支付流程
如果method_source是card
。
[sdkPayment paymentWithMobileToken:mobileToken andPaymentLink:paymentLink andPaymentType:@"card" andDelegate:self];
替代支付方式(APM)流程
如果method_source不是card
,例如:银行
[sdkPayment paymentWithMobileToken:@"" andPaymentLink:paymentLink andPaymentType:@"bank" andDelegate:self];
结果 成功委托 paymentSuccess
在支付成功时调用
- (void)paymentSuccess {
NSLog(@"SUCCESS");
}
如果失败,它将调用失败委托 paymentFailure
- (void)paymentFailure {
NSLog(@"FAILURE");
}
自定义卡输入表单
如果每付卡输入表单与您的要求不符,或者如果您希望添加超出配置选项的自定义品牌,则可以创建一个自定义表单。自定义卡表单有两个要求
- 它应该构造一个SDKPaymentSettings。
- 您可以为自定义卡调用此函数
- (void)everyPayCardSettings {
[SDKPaymentSettings setTitleColor:[UIColor redColor]];
[SDKPaymentSettings setLineColor:[UIColor redColor]];
...
}