iOS技术专题iOS开发技术分享

iOS开发之微信支付

2016-04-25  本文已影响117人  YanniLiu

笔者最近的项目中使用到了支付的功能,也遇到了一些坑。在这里跟大家分享一下。首先附上微信的官方教程

相关配置

1.首先要申请开通微信支付,获取到AppKey和AppSecret,一般来说,这一步一般是不需要我们去申请的。
2.下载官方Demo,导入需要的一些头文件(DataMd5.h不需要导入,这是笔者其他地方用到的头文件)


导入的文件导入的文件

3.在Appdelegate里面注册微信

[WxApi registerApp:"你申请的appid"];```

并且添加回调的方法
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{ BOOL result = [UMSocialSnsService handleOpenURL:url];
    if ([url.host isEqualToString:@"safepay"]) {
        //跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"%@",resultDic);
        }];
    }
 if (result == FALSE) {
        return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    }
    return result;
}```

到了这里,一些基本的配置就已经完成了。
# 调起支付
在点击支付的按钮中,添加事件,可以参考微信官方的demo,用客户端进行签名,不过一般都是服务器返回数据的。这边给大家参考一下
![支付事件](https://ooo.0o0.ooo/2016/04/24/571d9312c8fae.png)

上边的是笔者从服务器获取到的数据,然后发给微信客户端,如果是我们iOS端自己签名的话,参考下面注释的代码就可以。
# 笔者遇到的坑
- 不能掉起微信支付
 如果不能掉起微信支付,那么肯定是你的urlScheme没有配置好
具体配置如下。
选择你的项目中的 **TARGETS->INFO-> URL Types**,将其中的URL Schemes改成自己注册的商户APPID。
![设置url schemes](https://ooo.0o0.ooo/2016/04/24/571d95bec463b.png)

- iOS 9.0以上的系统如果要正常调起微信,还需要添加白名单
- 基本这样就可以支付了,如果调起微信后只显示一个白色的确定按钮,那么一定是你的参数有问题,如果是后台返回的数据,那么极有可能是签名的顺序搞错了。如果大家还有什么问题,可以添加我的 QQ:2774278740.
上一篇下一篇

猜你喜欢

热点阅读