一份完成的微信支付攻略

Android微信支付集成步骤

完整源码 https://github.com/benchegnzhou/demoWxPay

遇到问题欢迎联系作者 [email protected]

一、 准备工作

在应用集成微信支付之前,我们在微信开放平台必须要个开发者账户

1.注册完之后创建一个移动应用,并获取APPid等可以参考:

http://blog.csdn.net/vroymond/article/details/53422744

2.申请开通微信支付能力

  • 认证开发者资格

  • 开通微信支付

3.开通成功后,获取得到商户号并在商户平台配置API密钥(生成预支付订单号需要)

API密钥配置流程:https://blog.csdn.net/bencheng06/article/details/81132847

4.在项目中添加微信支付依赖

  • build文件中

    //微信支付
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'
    

5.在项目包名下创建一个wxapi的包,并创建一个WXPayEntryActivity的类(微信分享以及登录必须要求,该类继承activity并实现IWXAPIEventHandler接口,用于拿到支付的回调结果),并在清单文件中注册。

二、 调起微信支付

步骤:

1.客户端(APP)提交订单信息给服务端,服务端根据微信接口:统一下单接口,生成预支付Id(prepay_id)返回给客户端。

2.客户端(APP)根据预支付Id(prepay_id)调起微信支付


3. 生成预支付Id(这步在服务端生成完成,切记)

名称 字段 字段举例 解释 预留
应用ID appid wxe154574854 微信开放平台审核通过的应用APPID
商户号 mch_id 1530000109 微信支付分配的商户号
随机字符串 nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机数生成算法
商品描述 body 腾讯充值中心-QQ会员充值 用户付款界面显示,APP——需传入应用市场上的APP名字-实际商品名称,天天爱消除-游戏充值。
商户订单号 out_trade_no 20150806125346
总金额 total_fee 888 以分为单位
终端IP spbill_create_ip 123.12.12.123
通知地址 notify_url http://www.weixin.qq.com/wxpay/pay.php
交易类型 trade_type APP 支付类型
签名 sign C380BEC2BFD727A4B6845133519F3AD6 签名生成算法(重要)
API接口密码匙 API_KEY 15488845448acb48884544a7488845448acb4a74a7ba 开发者平台对应有多个APP的,这个值必须登录每个商户号分别设置,商户信息以注册应用成功回执的邮件为准

* 详情可看:统一下单
* 生成签名后请自行校验 微信支付接口签名校验工具

  • 最终提交的样例

    <xml>
       <appid>wx2421b1c4370ec43b</appid>
       <attach>支付测试</attach>
       <body>APP支付测试</body>
       <mch_id>10000100</mch_id>
       <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
       <notify_url>http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url>
       <out_trade_no>1415659990</out_trade_no>
       <spbill_create_ip>14.23.150.211</spbill_create_ip>
       <total_fee>1</total_fee>
       <trade_type>APP</trade_type>
       <sign>0CB01533B8C1EF103065174F50BCA001</sign>
    </xml>
    

sign签名生成:

1.把我们所需要提交的参数(除sign外),拼接成URL键值对的格式(即key1=value1&key2=value2…)

2.得到拼接后的字符串之后拼接在商户平台生成 API密钥

3.拼接完key之后,进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign

提交所有参数 调起统一下单接口 获取预支付Id

APP客户端调起微信支付

根据微信提供的调起微信支付的规则,APP端需要提交的参数为:

  • 1.sign签名生成

​ sign签名生成步骤跟上面叙述的是一样的(省略)。

  • 2.生成完签名,拼接所有支付参数。(PayReq,IWXAPI是微信提供jar包里的类)

  • 3.调起微信支付

  • (注意,运行的应用签名必须跟在微信开放平台的签名需要一致,为了方便调试可以让debug使用relase签名,配置步骤可参考:http://www.cnblogs.com/niray/p/5242985.html)

至此,调起微信支付所有步骤完成

源码地址: https://github.com/benchegnzhou/demoWxPay(此代码只能做参考,已把应用签名以及APPid等删除掉)

效果图:

猜你喜欢

转载自blog.csdn.net/bencheng06/article/details/81134497