项目中要用到支付功能,须要支付宝支付、支付宝网页支付转客户端、微信支付、银联支付、Apple_pay,因此打算总结一下,方便之后的查阅,也方便你们, 用到的地方避免再次被坑。 今天咱们就主要介绍一下Apple_pay,其余支付也写了对应教程,而且给出了链接。web
1-2. 商户生成订单,经过商户 SERVER 端将订单信息发送给银联支付网关; 3-4. 银联支付网关记录订单信息,返回用来标识订单的 TN 号,经由商户 SERVER 返回至给 商户 APP; 5.商户 APP 调用银联 SDK,将 TN 号传递给银联 SDK 6.银联 SDK 向 Apple 公司的 PASSKIT FRAMEWORK 发起支付请求; 7.接口返回加密的支付 Token 信息; 8-9.银联 SDK 将支付 Token 传递给银联支付网关,完成交易认证; 10-12.银联将支付结果返回给商户 APP,商户 SERVER,商户 APP 负责提示用户交易结果。bash
bundleID设置服务器
Capability中启用Apple Pay权限,并选择merchantID,merchantID申请流程。微信
以后项目会多一个Applepay的配置文件ApplePayYasin.entitlementspost
Apple Pay SDK微信支付
下载以后,找到.h文件和库文件,使用UPPaymentControl须要将paymentcontrol/inc目录下UPAPayPlugin.h、UPAPayPluginDelegate.h文件和paymentcontrol/libs目录下的libUPAPayPlugin.a文件添加到商户应用的工程中加密
在调用银联支付类里面,首先增长头文件引用。spa
#import "UPAPayPlugin.h"
// TODO 商户须要换用本身的mertchantID
#define kAppleMerchantID @"merchant.com.AgreePay.ApplePayAgree"
复制代码
在调起支付的方法中代码以下:3d
//当得到的tn不为空时,调用支付接口
if (tn != nil && tn.length > 0) {
[UPAPayPlugin startPay:tn
mode:@"01"
viewController:ViewController
delegate:self andAPMechantID:kAppleMerchantID];
}
复制代码
方法须要的几个参数文档上都写的有,tn是交易流水号,服务器端传回来的,客户端只有凭借这个参数才能调用支付控件 进行支付的。只须要调用一个方法就行啦!!!code
就在调起支付的ViewController 中写入下面代码便可
#pragma mark -
#pragma mark 响应控件返回的支付结果
#pragma mark -
- (void)UPAPayPluginResult:(UPPayResult *)result
{
if(result.paymentResultStatus == UPPaymentResultStatusSuccess) {
NSString *otherInfo = result.otherInfo?result.otherInfo:@"";
NSString *successInfo = [NSString stringWithFormat:@"支付成功\n%@",otherInfo];
NSLog(@"%@",successInfo);
}else if(result.paymentResultStatus == UPPaymentResultStatusCancel){
NSLog(@"支付取消");
}else if (result.paymentResultStatus == UPPaymentResultStatusFailure) {
NSString *errorInfo = [NSString stringWithFormat:@"%@",result.errorDescription];
NSLog(@"支付失败%@",errorInfo);
}else if (result.paymentResultStatus == UPPaymentResultStatusUnknownCancel) {
//TODO UPPAymentResultStatusUnknowCancel表示发起支付之后用户取消,致使支付状态不确认,须要查询商户后台确认真实的支付结果
// NSString *errorInfo = [NSString stringWithFormat:@"支付过程当中用户取消了,请查询后台确认订单"];
// [self showAlertMessage:errorInfo];
NSLog(@"支付过程当中用户取消了,请查询后台确认订单");
}
}
复制代码
关注 【网罗开发】微信公众号,网罗天下方法,方便你我开发,更多iOS技术干货等待领取,全部文档会持续更新,欢迎关注一块儿成长!
但愿能够帮助你们
若是哪里有什么不对或者不足的地方,还望读者多多提意见或建议
如需转载请联系我,通过受权方可转载,谢谢