ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

微信支付

2019-04-22 13:52:14  阅读:250  来源: 互联网

标签:商户 url 微信 用户 支付 客户端


1.前提 公式需要注册然后提供

appid:公众号唯一标识
appsecret:公众号的秘钥

mch_id:商户号,申请微信支付的时候分配的
key:支付交易过程生成签名的秘钥,设置路径 

2.然后去微信支付商户平台,找到对应的开发时序图(一般使用模式二,开发起来简单)

模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。注意:code_url有效期为2小时,过期后扫码不能再发起支付。

业务流程时序图

原生支付模式二时序图

图6.9 原生支付模式二时序图

业务流程说明:

(1)商户后台系统根据用户选购的商品生成订单。

(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易;

(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。

(4)商户后台系统根据返回的code_url生成二维码。

(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。

(6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。

(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。

(8)微信支付系统根据用户授权完成支付交易。

(9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。

(10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。

(11)未收到支付通知的情况,商户后台系统调用【查询订单API】。

(12)商户确认订单已支付后给用户发货。

3、和微信支付交互方式
1、post方式提交
2、xml格式的协议
3、签名算法MD5

 

具体开发;

  1.封装工具类,比如 md5加密,和xml转map map转xml 等 ,可以去从微信开发者文档获取部分代码 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1  改造下就行

  2.首先调用统一下单接口

      微信开发文档有明确的说明,需要穿什么参数(比如:appid,mch_id,微信回调url) 而且需要按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式,所以我们使用sortMap 集合来放参数, 等等 要求

其中,有个参数叫着sign(签名),我们可以通过封装的 工具类获得,获得后我们可以通过工具去校验sign是否正确,然后吧获取的sign 在保存到map中去,然后子啊通过工具类 将map 转成xml,

      


第一步,讲开发文档要求携带的参数(:appid,mch_id,微信回调url)放在集合M中,因为开发文档有要求,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),所以我们使用sortMap 来装。 

第二步,其中我们需要得到一个sign(签名), 我们可以通过上面定义的集合得到,这可以写一个工具类,具体怎么得到,开发文档上写的有,大致是把上面的map 按开发文档得到一个string(key value 形式的),然后在进行MD5加密和字符串转大写,这样就得到了sign(签名),

然后在吧sign 放到sortMap中

第三步,然后将得到的map转成xml,然后在调用微信统一下单提供的连接 把上面得到的xml 传给微信客户端 ,成功后微信客户端会返回一个xml ,然后我们在吧xml 装成map  获取 位置支付的二维码连接url,然后通过谷歌二维码生成工具生成一个二维码。 用户扫码以后,微信会进行验证,用户是不是付过款,支付完成后,微信会把相关支付结果及用户信息通过数据流的形式发送给商户(这个请求url 就是上面我们往sortmap中放的回调url),商户需要接收处理,并按文档规范返回应答。,然后,我们获取我们想要的信息,进行业务处理。同时我们也要返回信息给微信,告诉他我们知道用户付款成功了,不需要推送信息了,不然微信支付系统一直会给我们推送,告诉用户付款成功的信息。

代码去我的github 上下载去: https://github.com/wangbensen/wx_review.git    现在项目我变成私有的了,因为有人搞坏,想要的联系就是了。

标签:商户,url,微信,用户,支付,客户端
来源: https://www.cnblogs.com/xiaowangbangzhu/p/10749653.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有