说一下iOS开发中的微信支付

说一下iOS开发中的微信支付_第1张图片
微信支付

完成微信支付我大概把它分为四步

- SDK集成
- 集成代码
- 申请服务部分
- 服务器部分

SDK集成

- SDK集成就比较简单了,按照官方文档一步一步来就可以,不太会的可以参考[第三方原生分享](http://www.jianshu.com/p/6e73cba0544b),其中也总结了一些可能出现的问题。

集成代码

- 在程序启动时,注册AppKey
- 设置回调代理
- 在需要支付部分,集成代码
- 以下为部分主要代码
//向微信注册
    [WXApi registerApp:@"wx8d3d11d9a92e7ad7" withDescription:@"微积分"];
/** 支持iOS8.0以上的回调 */
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    
    return [WXApi handleOpenURL:url delegate:[ApiManager sharedmanager]];
}
//判断有没有安装微信客户端
[WXApi isWXAppInstalled]
//发起微信支付的代码
PayReq* req             = [[PayReq alloc] init];
            req.openID              = dict[@"appid"];
            req.partnerId           = [dict objectForKey:@"partnerid"];
            req.prepayId            = [dict objectForKey:@"prepayid"];
            req.nonceStr            = [dict objectForKey:@"noncestr"];
            req.timeStamp           = stamp.intValue;
            req.package             = [dict objectForKey:@"package"];
            req.sign                = [dict objectForKey:@"sign"];
            [WXApi sendReq:req];

申请部分

  • 如果公司有产品,其实可以跳过此步骤,如果没有那就自食其力
  • 首先说明一点,拨打95017这个客服电话没有技术客服
  • 在微信开发平台注册,创建应用,填写相关信息,审核一般一个工作日就可以
  • 审核通过后,就可以使用微信分享功能
  • 申请开通支付功能,完成开发者资质认证,支付费用

服务器部分

  • 微信支付的时候,需要一个商品订单prepayid
  • 说一下流程 本地发起网络请求到自己服务器(参数:total_fee,spbill_create_ip)->我们的服务器请求微信接口获取主要的prepayId,其中sign以及openID、partnerId、nonceStr、timeStamp、package都由服务器给我们(想一下我们做的工作还是很少的/微笑)
  • 我们支付过以后钱到哪了?在我们的微信商户里

遇到的问题

  • prepayid怎么获取?// 服务器给
  • 我们需要做什么?服务器需要做什么? // 我们需要做的只是调接口,调微信api
  • 返回结果是服务器给的?还是我们在回调中处理? // 返回结果我们只拿回调方法中的,我个人认为,当我们完成支付的时候,微信服务器会首先把结果返回给我们自己的服务器,然后再返回给我们客户端,这样无论我们是否拿到回调,服务器数据一定会变化,这样是安全的,可以避免手机网络,通讯等方面的限制。

最后我要吐槽一下

  • 作为前端开发人员,如果我们后台和产品给力的话,其实我们做的事情很少(吐槽)

我会不定期更新遇到的问题,同时也会去更大家分享一些新的好玩的东西。欢迎大家的补充以及建议。O(∩_∩)O谢谢~

你可能感兴趣的:(说一下iOS开发中的微信支付)