node 网站调用支付宝支付 全程记录。
该遇到的坑,我觉得都遇到了,整个过程不算太顺,也没花多少时间。
1.找接口
这个容易,上蚂蚁金服开发平台,所有的注册什么的 都注册成功后。
https://docs.open.alipay.com/api_1/alipay.trade.pay
在该网站找到在线支付的接口。参数里面写的很全/
2.签名
使用工具生成公钥和私钥,公钥上传到蚂蚁金服的网站上。
let signer = crypto.createSign('RSA-SHA256') //rsa2
signer.update(_r)//_r 待签名的字符串
let _s = signer.sign(_privateKey, 'base64'); //_privateKey 私钥
在node 端 如果使用私钥
需要在开头添加一行—–BEGIN RSA PRIVATE KEY—–
在结尾添加 一行 —–END RSA PRIVATE KEY—–
产生签名后,再拿出待签名字段放在工具里,填上私钥,发现产生的签名和程序的不一样!!!
经过一番查找,,你妹的,待签名的参数排序的问题,顺序没排对��。
3.发送请求
我第一感觉是用node发送https 请求。(不要问为什么)
先用的是post ,发现返回的是 html (好吧,我已经发现该接口是 前端直接访问拼接好的url 即可,但是发现返回的是乱码,编码格式GB2312,平时爬虫没遇到过,正好试一下。)
使用的是iconv-lite 这个模块。我使用的是 原始的h