微信小程序支付 (一、生成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>