iOS 手机网站支付转Native支付(H5支付页面调起支付宝客户端(app))
2017-10-06 00:00
751 查看
为了节约开发成本,很多Native-H5混合App采用手机网站支付的方式去实现支付模块。但手机网站支付的网络依赖比较严重,也通常需要经过更多的验证,这种种原因导致手机网站支付的成功率比Native支付低,对商户的利益造成影响。
一:导入sdk流程如下:
1.下载sdk,把iOS包中的压缩文件中以下文件拷贝到项目文件夹下,并导入到项目工程中。
2.在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:
注意:
如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;
如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib。
二:使用说明:
1.在需要调用AlipaySDK的文件中,增加头文件引用。
2.调用接口
3.实现UIWebViewDelegate协议,拦截H5的URL(如果使用WKUIDelegate协议,请点击查看)
如果返回的resultCode为9000,接入方可以提示用户支付成功;返回结果不是9000的情况,无需做任何处理。如果returnUrl不为空,建议接入方跳转到该returnUrl。
4.支付宝客户端返回url处理方法,在AppDelegate.m文件中,增加头文件引用
在@implementation AppDelegate中增加如下代码:
一:导入sdk流程如下:
1.下载sdk,把iOS包中的压缩文件中以下文件拷贝到项目文件夹下,并导入到项目工程中。
AlipaySDK.bundle AlipaySDK.framework
2.在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:
注意:
如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;
如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib。
二:使用说明:
1.在需要调用AlipaySDK的文件中,增加头文件引用。
#import <AlipaySDK/AlipaySDK.h>
2.调用接口
[[AlipaySDK defaultService]fetchOrderInfoFromH5PayUrl:url]
3.实现UIWebViewDelegate协议,拦截H5的URL(如果使用WKUIDelegate协议,请点击查看)
如果返回的resultCode为9000,接入方可以提示用户支付成功;返回结果不是9000的情况,无需做任何处理。如果returnUrl不为空,建议接入方跳转到该returnUrl。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString* orderInfo = [[AlipaySDK defaultService]fetchOrderInfoFromH5PayUrl:[request.URL absoluteString]]; if (orderInfo.length > 0) { // 调用支付接口进行支付 [[AlipaySDK defaultService]payUrlOrder:orderInfo fromScheme:@"alisdkdemo" callback:^(NSDictionary* result) { // 处理返回结果 NSString* resultCode = result[@"resultCode"]; //建议操作: 根据resultCode做处理 // returnUrl 代表 第三方App需要跳转的成功页URL NSString* returnUrl = result[@"returnUrl"]; //建议操作: 打开returnUrl }]; return NO; } return YES; }
4.支付宝客户端返回url处理方法,在AppDelegate.m文件中,增加头文件引用
#import <AlipaySDK/AlipaySDK.h>
在@implementation AppDelegate中增加如下代码:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { //如果极简开发包不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给开发包 if ([url.host isEqualToString:@"safepay"]) { [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { //【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】 NSLog(@"result = %@",resultDic); }]; } if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回authCode [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) { //【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】 NSLog(@"result = %@",resultDic); }]; } return YES; }
相关文章推荐
- 支付宝集成+网站支付+APP支付+手机网站支付
- 支付宝中的手机网站支付接口,php版 notify_url.php 异步通知页面未成功执行
- iOS 手机网站支付转Native支付(使用WKUIDelegate协议获取url)
- Android IOS手机客户端支付接口API(支付宝)
- iOS 支付宝手机网站支付
- 支付宝支付-手机网站支付接口(H5手机站)
- 支付宝的手机网站支付接口的应用
- Ionic ios支付宝插件支付后提示打开另一个APP,不返回当前APP问题
- android开发--不安装支付宝客户端调H5页面问题
- H5页面,iOS以及部分Android手机链接a等标签点击的时候,会有阴影,怎么解决?
- 新版支付宝手机网站支付、支付宝pc支付、支付宝无密退款实现
- 安卓app中嵌入一个H5页面,当手机系统设置字体变大时,如何使H5页面的字体不会随用户自己调整的系统字体变化而变化?
- iOS APP接入支付宝SDK支付功能的实现(小白篇)
- 手机网站支付转Native支付--Android
- JSP中实现判断客户端手机类型并跳转到app下载页面
- iOS调起微信,qq,支付宝app支付总结
- 支付宝手机网站支付
- 现在很多的手机应用,都可能会直接嵌入一个web页面。这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端;另一个是功能通用,不仅Android可以用,iOS也可
- iOS app被拒------iOS 提交应用到 APP Store 因包含微信和支付宝支付被拒
- 支付宝APP支付(IOS手机端+java后台)版