[TOC]
# 开发引导
## 1.1、数据格式
(1)为保证交易安全性,建议采用HTTPS传输
(2)采用POST方法提交
(3)提交数据格式:application/x-www-form-urlencoded
(4)返回数据格式:JSON
(5)字符编码:统一采用UTF-8字符编码
(6)签名算法:RSA2
## 1.2、请求数据
~~~JSON
请求地址:
?mchid=880882963168548&method=pay.order%2Fcreate&charset=utf-8&sign_type=RSA2×tamp=1672602962&version=1.0&biz_content=%7B%22trade_type%22%3A%22alipayQr%22%2C%22out_trade_no%22%3A%2220230102034534132%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%22%5Cu6d4b%5Cu8bd5%5Cu5546%5Cu54c1%22%2C%22attach%22%3A%22%5Cu6d4b%5Cu8bd5%5Cu5546%5Cu54c1%22%2C%22notify_url%22%3A%22http%3A%5C%2F%5C%2F127.0.0.1%5C%2FSDK%5C%2Fnotify_url.php%22%2C%22return_url%22%3A%22http%3A%5C%2F%5C%2F127.0.0.1%5C%2FSDK%5C%2Freturn_url.php%22%2C%22client_ip%22%3A%22110.80.173.6%22%2C%22methodType%22%3A1%7D&sign=cLZ0QBDR9gJIn27TFIBdqxiuGJcxZCjqWjKsmlMpAGg%2B3dVbAg1XzyQGqMoFwX0t0lnIZBTLzhsyPe%2BJabSDf6XdSDx9oS16a1DjKOOWXCQz%2FAd5ncMiaXbwxdvpHyiKMJRE0V8u9QeK0MSrVeyiTeI3l3Zr7FpSaJVp7LBpqPUOR1NoMZbzMhneMnr7Kjt8OFEDJE9p4nG27o3O3EAB0HJ3u2g4W5kSzEVcSWnvy0cqtGqym4MLMdmRp4GL4H4Z57et4tb1qEXhtjfdtSO1pZleAiIgx8CxzuonX560nlMbXlXnj6tRoX6Sr2lo0ty6RGYyVtfR67YF44D5iw65TA%3D%3D
~~~
## 1.3、加签原理
* 获取所有 post请求 内容,不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数;
* 按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推;
* 将排序后的参数与其对应值,组合成 **参数=参数值** 的格式,并且把这些参数用 `&` 字符连接起来,此时生成的字符串为待签名字符串。
## 1.4、签名样例
(1)需要传递的参数如下:
~~~JSON
{"mchid":"880882963168548","method":"pay.order\/create","charset":"utf-8","sign_type":"RSA2","timestamp":1672603325,"version":"1.0","biz_content":"{\"trade_type\":\"alipayQr\",\"out_trade_no\":\"20230102034534132\",\"total_amount\":\"0.01\",\"subject\":\"\\u6d4b\\u8bd5\\u5546\\u54c1\",\"attach\":\"\\u6d4b\\u8bd5\\u5546\\u54c1\",\"notify_url\":\"http:\\\/\\\/127.0.0.1\\\/SDK\\\/notify_url.php\",\"return_url\":\"http:\\\/\\\/127.0.0.1\\\/SDK\\\/return_url.php\",\"client_ip\":\"110.80.173.6\",\"methodType\":1}"}
~~~
(2)对参数按照key=value的格式,并按照参数名ASCII字典序排序如下(需要过滤空值)
~~~JSON
biz_content={"trade_type":"alipayQr","out_trade_no":"20230102034534132","total_amount":"0.01","subject":"\u6d4b\u8bd5\u5546\u54c1","attach":"\u6d4b\u8bd5\u5546\u54c1","notify_url":"http:\/\/127.0.0.1\/SDK\/notify_url.php","return_url":"http:\/\/127.0.0.1\/SDK\/return_url.php","client_ip":"110.80.173.6","methodType":1}&charset=utf-8&mchid=880882963168548&method=pay.order/create&sign_type=RSA2×tamp=1672603405&version=1.0
~~~
(4)使用 RSA2签名方式对待签名字符串进行签名 签名后使用base64进行转码
(5)异步回调通知请按照签名方法进行解析
# 2、生成密钥
您可以通过本文了解如何使用支付宝开放平台密钥工具生成密钥:
* 密钥方式:生成 RSA 密钥对(应用公钥、应用私钥)
## 2.1、注意事项
* 应用私钥(private key)需填写到代码中供签名时使用。生成的私钥需妥善保管,避免遗失,不要泄露。
* 应用公钥(public key)需上传到商户后台。
* 密钥和应用(APPID)一一对应,即开发者需要为名下的每个应用分别设置密钥,且不同应用的密钥不能混用。
* RSA2 加密算法默认生成格式为 PKCS8,如需 PKCS1 格式,可使用 [格式转换](https://opendocs.alipay.com/common/02khjp)。
## 2.2、工具下载
* [Windows](https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB)(请不要安装在含有空格的目录路径下,否则会导致公私钥乱码的问题)
* [MAC\_OSX](https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=mac&channelType=WEB)
**注意**:MAC 系统安装密钥工具时可能会提示 **无法打开“支付宝开放平台密钥工具”,因为Apple无法检查其是否包含恶意软件**。解决方案见下文。
* 方案一:系统偏好设置 > 安全性与隐私 > 通用中启用该应用。
* 方案二:按住 Control 键点击应用, 然后打开,这样会把应用增加到白名单中许可执行。
# 3、商户密钥配置教程
使用前必须配置商户开发设置,配置路径为:商户设置-开发设置
配置项:
1.商户公钥
2.商户私钥
3.MD5秘钥
### 3.1,商户公私钥生成
下载公私钥生成工具并完成安装
* [Windows](https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB)(请不要安装在含有空格的目录路径下,否则会导致公私钥乱码的问题)
* [MAC\_OSX](https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=mac&channelType=WEB)
打开密钥生成工具
选择加密方式:密钥 加密算法:RSA2
![](https://bhzogpy55h.feishu.cn/space/api/box/stream/download/asynccode/?code=Y2Q4ODg5NDQ3YWJhZDdjZjBiZGNmZmZkMDk4MmRmZTZfVTR6OVMxTENSZlJpNzNkYzJQVHpWb2dDaVNaTng3bmVfVG9rZW46Ym94Y25nTlNqNGFlemFXYlRuN1dYYWRvejdvXzE2ODEyMDE4MDU6MTY4MTIwNTQwNV9WNA)
点击生成密钥
![](https://bhzogpy55h.feishu.cn/space/api/box/stream/download/asynccode/?code=ZjZmYTIwN2M4OGE4NmYyNWQwOTNmYzJhZGRmNjRmMTlfSVE3R05zVEpvbDVMVEVtVkNyOTJzWG1YQjJJVkhmRTdfVG9rZW46Ym94Y252OGJON0Fsa2xKN3l2RjJLb29aS0dkXzE2ODEyMDE4MDU6MTY4MTIwNTQwNV9WNA)
应用公钥填写到后台商户公钥,应用私钥填写到后台商户私钥
MD5 密钥生成(易支付对接必填):生成地址:https://www.sojson.com/md5/
随意输入几个字符即可生成32位MD5密钥 填写到后台即可
填写后保存及时生效