iOS开发之微信支付

作者: YanniLiu | 来源:发表于2016-04-25 11:57 被阅读117次

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

    相关配置

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


    导入的文件导入的文件

    3.在Appdelegate里面注册微信

    [WxApi registerApp:"你申请的appid"];```
    
    并且添加回调的方法
    
    • (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
      {
      BOOL result = [UMSocialSnsService handleOpenURL:url];
      NSLog(@"%@",url.host);
      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;
      }```
      #pragma mark ios9的回调
    -(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.

    相关文章

      网友评论

        本文标题:iOS开发之微信支付

        本文链接:https://www.haomeiwen.com/subject/tectrttx.html