博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Node.js搭建微信支付后台(三)
阅读量:6114 次
发布时间:2019-06-21

本文共 1676 字,大约阅读时间需要 5 分钟。

hot3.png

2.3 商户支付注意规则

2.3.1 

6632582892722338111.png 

2.3.2 安全规范

主要在于过程中需要注意的事项

1. 签名算法------

步骤:

第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。 第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行` MD5运算` ,再将得到的字符串所有字符转换为`大写`,得到sign值signValue。 key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置

例子:

1. 假设传送的参数如下:

----------------------- 

appid:    wxd930ea5d5a258f4f

mch_id:    10000100

device_info:    1000

body:    test

nonce_str:    ibuaiVcKdpRxkhJA

-----------------------  

2. 对参数按照key=value的格式,并按照参数名ASCII字典序排序如下: ----------------------- stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";

-----------------------  

3. 第二步:拼接API密钥: ----------------------- stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d"sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7" -----------------------  

4. 最终结果

 =======================

<xml>

<appid>wxd930ea5d5a258f4f</appid>

<mch_id>10000100</mch_id>

<device_info>1000<device_info>

<body>test</body>

<nonce_str>ibuaiVcKdpRxkhJA</nonce_str> <sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign> </xml> =======================

注意事项:

◆ 参数名ASCII码从小到大排序(字典序); ◆ 如果参数的值为空不参与签名; ◆ 参数名区分大小写; ◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。 ◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段

2.3.3 证书相关内容

涉及资金回滚时,需要用到证书,比如退款、撤销接口, 证书一共包含四个(pkcs12格式, CA证书(rootca.pem), 证书pem格式(apiclient_cert.pem), 证书密钥pem格式(apiclient_key.pem)) 其中 apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。

6632094709562278888.png

  

我们关注的主要是apiclient_cert.p12是商户证书文件,路径下载:

微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->证书下载 。

2.4 业务流程图

四种,四种不同的流程图,所以罗列下来吧

1. 

2. 

3.  || 

4. 

 

 

转载于:https://my.oschina.net/u/2971691/blog/886294

你可能感兴趣的文章
Android Studio 导入 AOSP 源码
查看>>
React16时代,该用什么姿势写 React ?
查看>>
小程序上传图片到七牛云(支持多张上传,预览,删除)
查看>>
3分钟学会如何调度运营海量Redis系统
查看>>
浅析MySQL事务中的redo与undo
查看>>
iOS开发助手、ipa便捷上传工具!
查看>>
一文了解腾讯云数据库SaaS服务
查看>>
再见,BLE的那些坑!
查看>>
前端杂谈: 如何实现一个 Promise?
查看>>
一个超便捷的豆瓣电影Chrome插件
查看>>
C++ 学习笔记之——字符串和字符串流
查看>>
antd图标的本地化使用
查看>>
Vuejs 实战观书有感 C1
查看>>
UnixBench算分介绍
查看>>
GO的部分总结~
查看>>
净化网络环境!可信数字内容版权服务解决方案发布
查看>>
ES6系列之Promise, Generator, Async比较
查看>>
[LeetCode] 403. Frog Jump
查看>>
Go net 超时处理
查看>>
Node.js 指南(关于Node.js)
查看>>