Skip to content

codeGoogler/MyWxPayTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4f37a45 · May 24, 2017

History

1 Commit
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017
May 24, 2017

Repository files navigation

Android微信支付集成步骤

准备工作

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

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

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

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

  • 认证开发者资格

这里写图片描述

  • 开通微信支付

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

API密钥配置流程:http://help.ecmoban.com/article-2085.html

4.在项目中导入微信提供的jar包

这里写图片描述

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

这里写图片描述

调起微信支付

步骤:

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

这里写图片描述

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

这里写图片描述

如何生成预支付Id(一般在服务端生成)?

根据统一下单接口文档的规则:

服务端需要必须提交的参数字段有以下这些:(POST格式为XML)

  • 应用ID appid 微信开放平台审核通过的应用APPID
  • 商户号 mch_id 微信支付分配的商户号
  • 随机字符串 nonce_str 随机数生成算法
  • 商品描述 body
  • 商户订单号 out_trade_no
  • 总金额 total_fee
  • 终端IP spbill_create_ip
  • 通知地址 notify_url
  • 交易类型 trade_type
  • 签名 sign 签名生成算法(重要)

详情可看:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

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/CTSN/testWxPay(此代码只能做参考,已把应用签名以及APPid等删除掉)

效果图:

这里写图片描述

这里写图片描述

About

微信支付相关的学习demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published