美文网首页
iOS微信支付老版本与新版本

iOS微信支付老版本与新版本

作者: Mr鹏先生 | 来源:发表于2017-09-18 16:10 被阅读122次

    很多同学都说微信支付坑,其实支付对接并不难,只要了解支付流程,那么很多东西都很容易解决的(虽然官网文档确实写得不详细)

    以前的支付大部分都是写在前端的(至少我们公司当年是那么做的),现在支付更新后,都是推荐在服务端做加密签名,然后由前端进行支付的调起(因为在前端进行加密容易被抓包然后进行价格修改等,简单的说就是不安全)。前端的同学可以很轻松完成支付的开发,对于新手很是友好。下面我们开始说下微信的接入(老版本、新版本),我会把demo放在文章末尾

    首先我们先准备下微信的SDK,现在微信开发者平台上老版本的SDK好像找不到了,你们可以在我demo里面WXPay文件找到SDK:

    导入工程后导入库,这里我就不写了,直接上图

    可以根据官网去导入对应库

    继续设置

    ARC

    然后在Build Settings搜索bitcode 设置为NO(根据你的情况去设置)

    在Info设置Schemes

    Schemes设置你的APP_ID

    在Info.plist设置LSApplicationQueriesSchemes的白名单

    到这里微信支付的基本设置就完成了

    下面开始上代码:

    在AppDelegate中进行微信的注册  // 注册

    [WXApi registerApp:@"App_ID"];

    注册后我们使用微信支付

    [WXObjcPay sendPay_demo];

    这里简单说下微信支付需要的一些参数,一般公司都会有专人去申请这些支付信息,包括一些登录的。(小公司一般都是开发者自己去申请这里我就不说了)

    微信支付老版本需要用到APP_ID、  APP_SECRET、     MCH_ID(商户号)、  PARTNER_ID(商户API密钥)

    这四个。微信支付的支付流程我们可以这样去理解:

    用户点击微信支付按钮------->客户端根据产品价格、产品的一些基本信息生成产品预付单信息---------->通过产品预付单获取到prepayid进行二次签名---------->签名成功---------->调起支付进行产品的付费(下单、二次签名、调起支付)

    上面就是老版本微信支付的接入,有不懂的或者本文有错误的地方请提出、互相交流,具体代码看demo

    下面我们开始讲下更新后的新版微信支付

    新版本的SDK去掉了lib文件的类、lib文件里面的类主要是进行下单加密,也就是说微信希望加密的流程不要放到前端去做,官网里面也有说明(写在一个不起眼的地方。。。。)

    接入的方式可以参考老版本的,导入SDK----导入库----设置schemes----设置白名单

    基本设置完成后使用支付:

    用户点击微信支付------>把产品信息传到服务端------->服务端返回PayReq参数{

    "appid": "wxb4ba3c02aa476ea1",

    "noncestr": "d1e6ecd5993ad2d06a9f50da607c971c",

    "package": "Sign=WXPay",

    "partnerid": "10000100",

    "prepayid": "wx20160218122935e3753eda1f0066087993",

    "timestamp": "1455769775",

    "sign": "F6DEE4ADD82217782919A1696500AF06"

    }------------>[WXApi sendReq:req]调起微信支付

    从上面我们可以看到,我们只是把产品信息传到服务端,由服务端进行下单、加密签名,前端只需要把加密的信息获取到,然后使用sendReq:方法调起微信

    好了,今天的支付就到这里奉上demo---git.oschina.net/xpyt/WeiXinZhiFu/tree/master

    相关文章

      网友评论

          本文标题:iOS微信支付老版本与新版本

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