微信小程序支付 (一、生成prepay_id) 2018-08-06
微信公众平台: 微信公众平台
/
商户平台: 商户平台
/index.php/core/home/login
开发手册 api 是:?
/wiki/doc/api/index.html
/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
生成XML的测试接口: 测试接口
/wiki/tools/signverify/
32位随机码生成器
1 配置参数, 一个都不能少(这些都是必填的,还有其他选填的参数,也可以随心情填写)
appid 此小程序的唯一标识 例如:wxed9dxxx6d6cxxx9e
body 可以写商品描述 例如:我是商品描述,用户买了两个馒头
mch_id 商户id 需在 商户平台 ?查看(申请商户平台成功就会得到) 如: 149411***2
nonce_str 随机字符串(别带小数点(没考证 感觉)) 例如:76521019851170500000
notify_url 成功后的通知地址 例如:/pay/unifiedorder 接口
如果正确 会成功得到 xml格式的?prepay_id ,如果签名错误进行下面的错误查找。
~~:进行错误查找? 可以拿出参数在? 测试接口 ?进行测试 ,无异常可以正常生成 xml之后,如果还报错。
试着 更改 商户平台的秘钥 (详细请看第 3 步)。貌似很多人都踩这个雷了? ...
<code>
// 字典排序 key1=xxx&key2=zzz 拼接成字符串
function joinToStr(_obj) {
let keyArr = [];
for (let key in _obj) {
keyArr.push(key);
}
keyArr = keyArr.sort();
console.log("keyArrSort--->", keyArr);
// paySign = MD5(appId=wxd678efh567hg6787&nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&package=prepay_id=wx2017033010242291fcfe0db70013231072&signType=MD5&timeStamp=1490840662&key=qazwsxedcrfvtgbyhnujmikolp111111) = 22D9B4E54AB1950F51E0649E8810ACD6
// _str 是 paySign 中MD5 包裹的字符串部分
let _str = "";
let len = keyArr.length;
for (let i = 0; i < len; i++) {
if (i == len - 1) {
_str += (keyArr[i] + "=" + _obj[keyArr[i]]);
} else {
_str += (keyArr[i] + "=" + _obj[keyArr[i]] + "&");
}
}
return _str;
}
</code>