iOS移动开发社区首页投稿(暂停使用,暂停投稿)

iOS集成支付宝支付

2017-09-23  本文已影响88人  LYPC_下里巴人

前段时间把微信支付小小整理写了一下,时隔至今,看了一遍目录,微信和支付宝支付不是同时出现的么,怎么能只写一个(强迫症害死猫)

下面请开始我的表演

建议先看看这个官方的集成文档:App支付iOS集成流程

1、逛逛官网介绍和一些注意事项,下载demo和sdk,按照集成文档放在自己项目里,该引入的依赖库不要遗漏,认真添加,有些工具类文件也可以从demo里直接拿过来用(模拟生成支付用的东西 真实的不需要 在后台处理),我最后整到项目里的是这些文件,请您过目:

2、开始编写支付代码,这之前最好是要弄明白后台要做的事情 客户端要做的事情,沟通好狠重要,接着看代码:

(1)引入头文件:

#import#import "Order.h"

#import "RSADataSigner.h"

(2)调用后台获取支付宝支付的信息,这些东西一定在后台做,为了所谓的安全考虑,我们很乐意让后台来实现这个过程,

// 选中商品调用支付宝极简支付

- (void)doAlipay:(NSDictionary *)response {

// 后台返回的字符串

NSString *signedString = response[@"data"]; 

if (signedString != nil) {

// 这个在Xcode里面设置一下添加scheme:MeiFaAlipay

NSString *appScheme = @"MeiFaAlipay";

// 开始支付

[[AlipaySDK defaultService] payOrder:signedString fromScheme:appScheme callback:^(NSDictionary *resultDic) {

NSLog(@"reslut = %@",resultDic);

}];

}

}

(3)以上是主要实现代码,支付成功的回掉老是不走,不知道为啥,支付结果我们UI设计了专门的支付成功页面,所以要拿到,我是在appdelegate.m中获取到支付成功或者时报发了一个通知来处理的,参考:

#import <AlipaySDK/AlipaySDK.h>

//9.0后的方法里获取支付结果回掉事件 

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options {

if ([url.host isEqualToString:@"safepay"]) {

//跳转支付宝钱包进行支付,处理支付结果

[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"1、支付宝进行支付,处理支付结果:%@", resultDic);

if ([resultDic[@"resultStatus"] isEqualToString:@"9000"]) {

[[NSNotificationCenter defaultCenter] postNotificationName:@"AliPaySucssed" object:@"Y"];

}else {

[[NSNotificationCenter defaultCenter] postNotificationName:@"AliPayFaild" object:@"N"];

}

}];

return YES;

}

}

上一篇下一篇

猜你喜欢

热点阅读