iOS之微信支付开发
来源:互联网 发布:btx主板知乎 编辑:程序博客网 时间:2024/05/07 15:53
因为项目需求,支付方式添加了微信支付。之前做过银联的支付,所以,感觉不会太难。使用的SDK为1.7.是13年12月份的,还是手动管理内存。实际支付的代码不难,就是几个配置,因为项目之前做过微信分享,所以配置这步就省略了。具体支付代码:
//调起微信支付 PayReq* req = [[[PayReq alloc] init]autorelease]; req.openID = APPI_ID; req.partnerId = PARTNER_ID; req.prepayId = prePayid; req.nonceStr = nonce_str; req.timeStamp = now; req.package = package; req.sign = sign; [WXApi safeSendReq:req];
不得不吐槽,微信支付的SDK,这里连个代理都没有,所以,你想获取支付后的结果的返回信息,需要去AppDelegate里,添加如下代码,添加微信的代理:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ return [WXApi handleOpenURL:url delegate:self];}
然后,再实现这个方法:
-(void) onResp:(BaseResp*)resp
通过这个方法,你就可以获取微信支付后的信息了。但是如果这样,所有的支付代码都在AppDelegate里,不好,至少微信给的例子就是这样。我的方法是添加通知,代码如下:
-(void) onResp:(BaseResp*)resp{ if ([resp isKindOfClass:[PayResp class]]) { PayResp *response = (PayResp *)resp;// NSString *strTitle = [NSString stringWithFormat:@"支付结果"];// NSString *strMsg = [NSString stringWithFormat:@"errcode:%d", response.errCode];// // UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle// message:strMsg// delegate:self// cancelButtonTitle:@"OK"// otherButtonTitles:nil, nil];// [alert show]; switch (response.errCode) { case WXSuccess: { NSNotification *notification = [NSNotification notificationWithName:ORDER_PAY_NOTIFICATION object:@"success"]; [[NSNotificationCenter defaultCenter] postNotification:notification]; break; } default: { NSNotification *notification = [NSNotification notificationWithName:ORDER_PAY_NOTIFICATION object:@"fail"]; [[NSNotificationCenter defaultCenter] postNotification:notification]; break; } } }}
然后,在支付那个VC,添加通知
#pragma mark - tabBar隐藏- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if([WXApi isWXAppInstalled]) // 判断 用户是否安装微信 { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getOrderPayResult:) name:ORDER_PAY_NOTIFICATION object:nil];//监听一个通知 }}#pragma mark - tabbar还原- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [[NSNotificationCenter defaultCenter]removeObserver:self];//移除通知}
相关参数的获取,从我们自己的服务器获取
参考自:http://blog.csdn.net/sky_2016/article/details/39735637
2 0
- iOS开发支付之微信支付
- iOS之微信支付开发
- iOS开发之微信支付
- iOS开发之微信支付
- iOS开发之微信支付
- iOS之微信支付开发
- iOS之“微信支付”开发流程
- iOS开发之微信支付
- iOS开发之微信集成支付
- iOS开发之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付
- iOS开发支付集成之微信支付(3)
- ScrollView中嵌套GridView,Listview的办法
- 什么是抽象类,以及用法
- cmd合并打包、存在的坑、解决方案及注意事项
- 【生活】献给所有迷茫的你我他:大三,开始一个新的自己。
- CC3.2+Lua(8) ——Lua调用自定义C++类
- iOS之微信支付开发
- android服务Service----实现电话监听录音
- ImageUtility及帮助文档
- 谷歌Volley网络框架讲解——第一篇
- ios获取昨天的日期
- 利用结构体类型,编程计算一名同学5门课的平均分
- android获取屏幕宽高与获取控件宽高
- 4.17
- 【iOS开发-存储】使用NSCoding归档和反归档