fix: vpay mode 改为 short_series_coin + signData 按字母序 + offerId 字符串化
This commit is contained in:
+15
-12
@@ -34,25 +34,28 @@ function hmacSha256Hex(key, data) {
|
|||||||
* signature = hmac_sha256(sessionKey, signData)
|
* signature = hmac_sha256(sessionKey, signData)
|
||||||
*/
|
*/
|
||||||
function buildPayParams(user, pack, outTradeNo) {
|
function buildPayParams(user, pack, outTradeNo) {
|
||||||
const signData = JSON.stringify({
|
// signData 字段按字母序排列(微信 Midas 验签对字段顺序敏感,不可乱序)
|
||||||
mode: 'coin',
|
const sd = {
|
||||||
offerId: OFFER_ID,
|
|
||||||
buyQuantity: pack.coins,
|
|
||||||
outTradeNo,
|
|
||||||
custom: '',
|
|
||||||
attach: JSON.stringify({ uid: String(user._id), pack: pack.id }),
|
attach: JSON.stringify({ uid: String(user._id), pack: pack.id }),
|
||||||
ts: Math.floor(Date.now() / 1000),
|
buyQuantity: pack.coins,
|
||||||
})
|
|
||||||
return {
|
|
||||||
mode: 'coin',
|
|
||||||
env: ENV,
|
env: ENV,
|
||||||
offerId: OFFER_ID,
|
mode: 'short_series_coin',
|
||||||
|
offerId: String(OFFER_ID),
|
||||||
|
outTradeNo,
|
||||||
|
platform: 'android',
|
||||||
|
ts: Math.floor(Date.now() / 1000),
|
||||||
|
}
|
||||||
|
const signData = JSON.stringify(sd)
|
||||||
|
return {
|
||||||
|
mode: 'short_series_coin',
|
||||||
|
env: ENV,
|
||||||
|
offerId: String(OFFER_ID),
|
||||||
buyQuantity: pack.coins,
|
buyQuantity: pack.coins,
|
||||||
outTradeNo,
|
outTradeNo,
|
||||||
currencyType: 'CNY',
|
currencyType: 'CNY',
|
||||||
platform: 'android',
|
platform: 'android',
|
||||||
signData,
|
signData,
|
||||||
paySig: hmacSha256Hex(APPKEY, `requestVirtualPayment&${signData}`),
|
paySig: hmacSha256Hex(APPKEY, 'requestVirtualPayment&' + signData),
|
||||||
signature: hmacSha256Hex(user.sessionKey || '', signData),
|
signature: hmacSha256Hex(user.sessionKey || '', signData),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user