mgtv.requestPaymentVip(Object object)
功能描述
发起购买会员请求
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
signData | string | 是 | 原串 | |
sign | string | 是 | 签名,见签名算法说明 | |
timestamp | number | 是 | 时间戳(单位:毫秒) | |
success | function | 否 | 成功的回调函数 | |
fail | function | 否 | 失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
signData
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
vipType | number | 是 | 会员类型(1-小屏;2-全屏;3-svip;4-亲密会员) | |
outTradeNo | string | 是 | 业务订单号 |
购买失败
错误码 | 错误信息 | 说明 |
---|---|---|
-1 | 网络异常/频繁调用 | |
200 | 订单未支付 | |
500 | 订单异常 | |
1000 | 参数错误 |
购买成功
属性 | 返回值 | 说明 |
---|---|---|
tradeNoResult | VipTradeNoResult[] | 购买结果 |
VipTradeNoResult
属性 | 类型 | 说明 |
---|---|---|
outTradeNo | string | 订单号 |
status | number | 状态(21-成功) |
vipType | number | 会员类型(1-小屏;2-全屏;3-svip;4-亲密会员) |
vipDays | number | 会员天数 |
示例代码
mgtv.requestPaymentVip({
signData: '{"outTradeNo":"20250807165422FT_1qlkv","vipType":1}',
sign: 'f9fb49030135808460994c9170039854377c12d9431e3b1bcf5b7f6b0986a87e',
timestamp: 1754556862496,
success(res) {
console.log('success', res);
},
fail({ errMsg, errCode}) {
console.error(errMsg, errCode)
}
})
签名算法说明
sign
参数的签名算法,使用小游戏开发设置中的 AppSecret
对支付的请求进行签名,代表请求经过开发者服务端的支付模块发起。
签名算法伪代码为:
sign = to_hex(hmac_sha256(app_secret, timestamp + '&' + signData))
签名代码 python 实现
import hmac
import hashlib
import urllib.parse
# sign_data 支付原串
# app_secret 开放平台小程序 AppSecret
# timestamp 时间戳
def gen_sign(sign_data, app_secret, timestamp):
need_encode_body = timestamp + '&' + sign_data
print(need_encode_body)
return hmac.new(key=app_secret.encode('utf-8'), msg=need_encode_body.encode('utf-8'),
digestmod=hashlib.sha256).hexdigest()