【iOS】银联支付
2016-03-25 19:25
405 查看
这几天在工作之余看了下银联支付。基本按照官方的文档做就可以。
《【iOS】集成支付宝支付/银联支付/微信支付》
支付流程
银联的文档截图。
官方流程说明:
流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号(TN),将交易流水号返回至客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联后台同时也将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回至客户端;
需要前端和后台的配合。
前端要做的:
1.提交订单信息给后台;
2.后台返回交易流水号(TN)
3.调支付控件;
4.处理回调。
运行官方Demo
运行前需要先往工程里面增加两个文件:
绿色的两个,不然或报错。
至于其他配置参看文档就可以了。
调起支付控件:
处理回调
《【iOS】集成支付宝支付/银联支付/微信支付》
支付流程
银联的文档截图。
官方流程说明:
流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送订单信息至银联后台;
(3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即TN),并回复至商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号(TN),将交易流水号返回至客户端;
(5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求;
(7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联后台同时也将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回至客户端;
需要前端和后台的配合。
前端要做的:
1.提交订单信息给后台;
2.后台返回交易流水号(TN)
3.调支付控件;
4.处理回调。
运行官方Demo
运行前需要先往工程里面增加两个文件:
绿色的两个,不然或报错。
至于其他配置参看文档就可以了。
调起支付控件:
[[UPPaymentControl defaultControl] startPay:tn fromScheme:@"UPPayDemo" mode:self.tnMode viewController:self];
处理回调
- (BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { [[UPPaymentControl defaultControl] handlePaymentResult:url completeBlock:^(NSString *code, NSDictionary *data) { //结果code为成功时,先校验签名,校验成功后做后续处理 if([code isEqualToString:@"success"]) { //判断签名数据是否存在 if(data == nil){ //如果没有签名数据,建议商户app后台查询交易结果 return; } //数据从NSDictionary转换为NSString NSData *signData = [NSJSONSerialization dataWithJSONObject:data options:0 error:nil]; NSString *sign = [[NSString alloc] initWithData:signData encoding:NSUTF8StringEncoding]; NSLog(@"sign = %@",sign); //验签证书同后台验签证书 //此处的verify,商户需送去商户后台做验签 if([self verify:sign]) { //支付成功且验签成功,展示支付成功提示 } else { //验签失败,交易结果数据被篡改,商户app后台查询交易结果 } } else if([code isEqualToString:@"fail"]) { //交易失败 } else if([code isEqualToString:@"cancel"]) { //交易取消 } }]; return YES; }
相关文章推荐
- IOS-58-阶段性小细节汇总
- iOS 邮箱判断
- ios延迟的几种方式
- Nagios监控ESXI主机系统、硬件、nagios日志文件时间格式转换
- iOS学习之路(二)--基础篇
- Html5嵌入app后通过JS和ios以及android客户端交互
- iOS存储数据字典到沙盒
- iOS自适应布局之Masonry(一)
- ios address book 操作大全
- iOS开发如何实现版本更新
- iOS开发小记:初次接入环信SDK3.0时遇到的问题及解决办法汇总
- iOS中构造函数与析构函数
- IOS开发 统计XCODE 代码行数
- iOS 屏蔽第三方键盘
- 自我感悟
- iOS 集成银联支付
- iOS旋转屏幕后,不显示状态栏
- iOS 关于手势
- ios9适配 添加URL Schemes白名单
- ios,Xcode6以后添加.pch文件