微信小程序虚拟支付(米大师)支付接口大全的使用说明
微信小程序虚拟支付(米大师)支付接口大全的使用说明【微信小程序支付系统定制开发电话】midasCancelPay接口:开通了虚拟支付的小游戏,若扣除游戏币的订单号在有效时间内,可以通过本接口取消该笔扣除游戏币的订单。midasGetBalance接口:开通了虚拟支付的小游戏,可以通过本接口查看某个用户的游戏币余额。midasPay接口:开通了虚拟支付的小游戏,可以通过本接口扣除某个用户的游戏币。 由于可能存在接口调用超时或返回系统失败,但是游戏币实际已经扣除的情况,所以当该接口返回系统失败时,可以用相同的bill_no再次调用本接口,直到返回非系统失败为止,不会重复扣款,也可以调用取消支付接口取消本次扣款。midasPresent接口:开通了虚拟支付的小游戏,可以通过该接口赠送游戏币给某个用户。

微信小程序虚拟支付(米大师)支付接口大全的使用说明【微信小程序支付系统定制开发电话:400-000-1280】
wx.requestMidasPayment(Object object)
发起米大师支付
参数
Object object
| 属性 | 类型 | 默认值 | 是否必填 | 说明 | 支持版本 |
|---|---|---|---|---|---|
| mode | string | 是 | 支付的类型,不同的支付类型有各自额外要传的附加参数。 | ||
| env | number | 0 | 否 | 环境配置 | |
| offerId | string | 是 | 在米大师侧申请的应用 id | ||
| currencyType | string | 是 | 币种 | ||
| platform | string | 否 | 申请接入时的平台,platform 与应用id有关。 | ||
| buyQuantity | number | 否 | 购买数量。mode=game 时必填。购买数量。详见 buyQuantity 限制说明。 | ||
| zoneId | string | 1 | 否 | 分区 ID | |
| success | function | 否 | 接口调用成功的回调函数 | ||
| fail | function | 否 | 接口调用失败的回调函数 | ||
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.mode 的合法值
| 值 | 说明 |
|---|---|
| game | 购买游戏币 |
object.env 的合法值
| 值 | 说明 |
|---|---|
| 0 | 米大师正式环境 |
| 1 | 米大师沙箱环境 |
object.currencyType 的合法值
| 值 | 说明 |
|---|---|
| CNY | 人民币 |
object.platform 的合法值
| 值 | 说明 |
|---|---|
| android | android |
fail 回调函数
参数
Object res
| 属性 | 类型 | 说明 | 支持版本 |
|---|---|---|---|
| errMsg | string | 错误信息 | |
| errCode | number | 错误码 |
res.errCode 的合法值
| 值 | 说明 |
|---|---|
| -1 | 系统失败 |
| -2 | 支付取消 |
| -15001 | 虚拟支付接口错误码,缺少参数 |
| -15002 | 虚拟支付接口错误码,参数不合法 |
| -15003 | 虚拟支付接口错误码,订单重复 |
| -15004 | 虚拟支付接口错误码,后台错误 |
| -15006 | 虚拟支付接口错误码,appId 权限被封禁 |
| -15006 | 虚拟支付接口错误码,货币类型不支持 |
| -15007 | 虚拟支付接口错误码,订单已支付 |
| 1 | 虚拟支付接口错误码,用户取消支付 |
| 2 | 虚拟支付接口错误码,客户端错误, 判断到小程序在用户处于支付中时,又发起了一笔支付请求 |
| 3 | 虚拟支付接口错误码,Android 独有错误:用户使用 Google Play 支付,而手机未安装 Google Play |
| 4 | 虚拟支付接口错误码,用户操作系统支付状态异常 |
| 5 | 虚拟支付接口错误码,操作系统错误 |
| 6 | 虚拟支付接口错误码,其他错误 |
| 1000 | 参数错误 |
| 1003 | 米大师 Portal 错误 |
buyQuantity 限制说明
购买游戏币的时候,buyQuantity 不可任意填写。需满足 buyQuantity * 游戏币单价 = 限定的价格等级。如:游戏币单价为 0.1 元,一次购买最少数量是 10。
有效价格等级如下:
| 价格等级(单位:人民币) |
|---|
| 1 |
| 3 |
| 6 |
| 8 |
| 12 |
| 18 |
| 25 |
| 30 |
| 40 |
| 45 |
| 50 |
| 60 |
| 68 |
| 73 |
| 78 |
| 88 |
| 98 |
| 108 |
| 118 |
| 128 |
| 148 |
| 168 |
| 188 |
| 198 |
| 328 |
| 648 |
midasCancelPay
开通了虚拟支付的小游戏,若扣除游戏币的订单号在有效时间内,可以通过本接口取消该笔扣除游戏币的订单
正式环境
POST https://api.weixin.qq.com/cgi-bin/midas/cancelpay?access_token=ACCESS_TOKEN
沙箱环境
POST https://api.weixin.qq.com/cgi-bin/midas/sandbox/cancelpay?access_token=ACCESS_TOKEN
参数
| 参数 | 类型 | 默认值 | 是否必填 | 说明 | |
|---|---|---|---|---|---|
| openid | string | 是 | 用户唯一标识符 | ||
| appid | string | 是 | 小程序 appId | ||
| offer_id | string | 是 | 米大师分配的offer_id | ||
| ts | number | 是 | UNIX 时间戳,单位是秒 | ||
| zone_id | string | 是 | 游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色,则角色ID接在分区ID号后用"_"连接。 | ||
| pf | string | 是 | 平台 安卓:android | ||
| user_ip | string | 否 | 用户外网 IP | ||
| bill_no | string | 是 | 订单号,业务需要保证全局唯一;相同的订单号不会重复扣款。长度不超过63,只能是数字、大小写字母_- | *@ | |
| pay_item | string | 否 | 道具名称 | ||
| sig | string | 是 | 以上所有参数(含可选最多9个)+uri+米大师密钥,用 HMAC-SHA256签名,详见 米大师支付签名算法 | ||
| access_token | string | 是 | 接口调用凭证 | ||
| mp_sig | string | 是 | 以上所有参数(含可选最多11个)+uri+session_key,用 HMAC-SHA256签名,详见 米大师支付签名算法 |
返回值
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | number | 错误信息 |
| bill_no | string | 扣除游戏币的订单号 |
errcode 的合法值
| 值 | 说明 |
|---|---|
| 0 | 请求成功 |
| -1 | 系统繁忙,此时请开发者稍候再试 |
| 90000 | 订单不存在 |
| 90009 | mp_sig签名错误 |
| 90010 | 用户未登录或登录态已过期 |
| 90011 | sig签名错误 |
| 90014 | 订单已支付确认完成,不允许当前操作 |
| 90015 | 订单已回退,不允许当前操作 |
| 90016 | 订单处理中 |
| 90017 | 没有调用接口的权限 |
| 90018 | 参数错误 |
POST 数据格式:JSON
{
"openid":"odkx20ENSNa2w5y3g_qOkOvBNM1g",
"appid":"wx1234567",
"offer_id":"12345678",
"ts":1507530737,
"zone_id":"1",
"pf":"android",
"bill_no":"BillNo_123",
"sig":"8bd582a6b06e38a1346fc335ebcb11c8990241bbe23118eb3d22f0ef42870a6a",
"mp_sig":"2651b0ee9cc7e7e1791de388d34c4d0357936e9ab7b8a9db9ba7b0537208f72b"
}midasGetBalance
开通了虚拟支付的小游戏,可以通过本接口查看某个用户的游戏币余额
正式环境
POST https://api.weixin.qq.com/cgi-bin/midas/getbalance?access_token=ACCESS_TOKEN
沙箱环境
POST https://api.weixin.qq.com/cgi-bin/midas/sandbox/getbalance?access_token=ACCESS_TOKEN
参数
| 参数 | 类型 | 默认值 | 是否必填 | 说明 |
|---|---|---|---|---|
| openid | string | 是 | 用户唯一标识符 | |
| appid | string | 是 | 小程序 appId | |
| offer_id | string | 是 | 米大师分配的offer_id | |
| ts | number | 是 | UNIX 时间戳,单位是秒 | |
| zone_id | string | 是 | 游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色,则角色ID接在分区ID号后用"_"连接。 | |
| pf | string | 是 | 平台 安卓:android | |
| user_ip | string | 否 | 用户外网 IP | |
| sig | string | 是 | 以上所有参数(含可选最多7个)+uri+米大师密钥,用 HMAC-SHA256签名,详见 米大师支付签名算法 | |
| access_token | string | 是 | 接口调用凭证 | |
| mp_sig | string | 是 | 以上所有参数(含可选最多9个)+uri+session_key,用 HMAC-SHA256签名,详见 米大师支付签名算法 |
返回值
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | number | 错误信息 |
| balance | number | 游戏币个数(包含赠送) |
| gen_balance | number | 赠送游戏币数量(赠送游戏币数量) |
| first_save | boolean | 是否满足历史首次充值 |
| save_amt | number | 累计充值金额的游戏币数量 |
| save_sum | number | 历史总游戏币金额 |
| cost_sum | number | 历史总消费游戏币金额 |
| present_sum | number | 历史累计收到赠送金额 |
errcode 的合法值
| 值 | 说明 |
|---|---|
| 0 | 请求成功 |
| -1 | 系统繁忙,此时请开发者稍候再试 |
| 90009 | mp_sig签名错误 |
| 90010 | 用户未登录或登录态已过期 |
| 90011 | sig签名错误 |
| 90017 | 没有调用接口的权限 |
| 90018 | 参数错误 |
first_save 的合法值
| 值 | 说明 |
|---|---|
| 1 | 满足 |
| 2 | 不满足 |
POST 数据格式:JSON
{
"openid":"odkx20ENSNa2w5y3g_qOkOvBNM1g",
"appid":"wx1234567",
"offer_id":"12345678",
"ts":1507530737,
"zone_id":"1",
"pf":"android",
"sig":"d1f0a41272f9b85618361323e1b19cd8cb0213f21b935aeaa39c160892031e97",
"mp_sig":"ff4c5bb39dea1002a8f03be0438724e1a8bcea5ebce8f221f9b9fea3bcf3bf76"
}midasPay
开通了虚拟支付的小游戏,可以通过本接口扣除某个用户的游戏币。 由于可能存在接口调用超时或返回系统失败,但是游戏币实际已经扣除的情况,所以当该接口返回系统失败时,可以用相同的bill_no再次调用本接口,直到返回非系统失败为止,不会重复扣款,也可以调用取消支付接口取消本次扣款。
正式环境
POST https://api.weixin.qq.com/cgi-bin/midas/pay?access_token=ACCESS_TOKEN
沙箱环境
POST https://api.weixin.qq.com/cgi-bin/midas/sandbox/pay?access_token=ACCESS_TOKEN
参数
| 参数 | 类型 | 默认值 | 是否必填 | 说明 | |
|---|---|---|---|---|---|
| openid | string | 是 | 用户唯一标识符 | ||
| appid | string | 是 | 小程序 appId | ||
| offer_id | string | 是 | 米大师分配的offer_id | ||
| ts | number | 是 | UNIX 时间戳,单位是秒 | ||
| zone_id | string | 是 | 游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色,则角色ID接在分区ID号后用"_"连接。 | ||
| pf | string | 是 | 平台 安卓:android | ||
| user_ip | string | 否 | 用户外网 IP | ||
| amt | number | 是 | 扣除游戏币数量,不能为 0 | ||
| bill_no | string | 是 | 订单号,业务需要保证全局唯一;相同的订单号不会重复扣款。长度不超过63,只能是数字、大小写字母_- | *@ | |
| pay_item | string | 否 | 道具名称 | ||
| app_remark | string | 否 | 备注。会写到账户流水 | ||
| sig | string | 是 | 以上所有参数(含可选最多11个)+uri+米大师密钥,用 HMAC-SHA256签名,详见 米大师支付签名算法 | ||
| access_token | string | 是 | 接口调用凭证 | ||
| mp_sig | string | 是 | 以上所有参数(含可选最多13个)+uri+session_key,用 HMAC-SHA256签名,详见 米大师支付签名算法 |
返回值
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | number | 错误信息 |
| bill_no | string | 订单号,有效期是 48 小时 |
| balance | number | 预扣后的余额 |
| used_gen_balance | number | 本次扣的赠送币的余额 |
errcode 的合法值
| 值 | 说明 |
|---|---|
| 0 | 请求成功 |
| -1 | 系统繁忙,此时请开发者稍候再试 |
| 90009 | mp_sig签名错误 |
| 90010 | 用户未登录或登录态已过期 |
| 90011 | sig签名错误 |
| 90012 | 订单已存在 |
| 90013 | 余额不足 |
| 90017 | 没有调用接口的权限 |
| 90018 | 参数错误 |
POST 数据格式:JSON
{
"openid":"odkx20ENSNa2w5y3g_qOkOvBNM1g",
"appid":"wx1234567",
"offer_id":"12345678",
"ts":1507530737,
"zone_id":"1",
"pf":"android",
"amt":123,
"bill_no":"BillNo_123",
"sig":"f705c7351830125282ffc6d3c22c81db19b50a748f60f7c8f267e59152941d83",
"mp_sig":"168704ac52eea6da27e0d76fd659cd8d628457dd680459a57365e17c0f40de4a"
}midasPresent
开通了虚拟支付的小游戏,可以通过该接口赠送游戏币给某个用户。
正式环境
POST https://api.weixin.qq.com/cgi-bin/midas/present?access_token=ACCESS_TOKEN
沙箱环境
POST https://api.weixin.qq.com/cgi-bin/midas/sandbox/present?access_token=ACCESS_TOKEN
参数
| 参数 | 类型 | 默认值 | 是否必填 | 说明 | |
|---|---|---|---|---|---|
| openid | string | 是 | 用户唯一标识符 | ||
| appid | string | 是 | 小程序 appId | ||
| offer_id | string | 是 | 米大师分配的offer_id | ||
| ts | number | 是 | UNIX 时间戳,单位是秒 | ||
| zone_id | string | 是 | 游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色,则角色ID接在分区ID号后用"_"连接。 | ||
| pf | string | 是 | 平台 安卓:android | ||
| user_ip | string | 否 | 用户外网 IP | ||
| bill_no | string | 是 | 订单号,业务需要保证全局唯一;相同的订单号不会重复扣款。长度不超过63,只能是数字、大小写字母_- | *@ | |
| present_counts | number | 是 | 赠送游戏币的个数,不能为0 | ||
| sig | string | 是 | 以上所有参数(含可选最多9个)+uri+米大师密钥,用 HMAC-SHA256签名,详见 米大师支付签名算法 | ||
| access_token | string | 是 | 接口调用凭证 | ||
| mp_sig | string | 是 | 以上所有参数(含可选最多11个)+uri+session_key,用 HMAC-SHA256签名,详见 米大师支付签名算法 |
返回值
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | number | 错误码 |
| errmsg | number | 错误信息 |
| balance | number | 赠送后的余额 |
| bill_no | string | 赠送游戏币的订单号 |
errcode 的合法值
| 值 | 说明 |
|---|---|
| 0 | 请求成功 |
| -1 | 系统繁忙,此时请开发者稍候再试 |
| 90009 | mp_sig签名错误 |
| 90010 | 用户未登录或登录态已过期 |
| 90011 | sig签名错误 |
| 90012 | 订单已存在 |
| 90017 | 没有调用接口的权限 |
| 90018 | 参数错误 |
POST 数据格式:JSON
{
"openid":"odkx20ENSNa2w5y3g_qOkOvBNM1g",
"appid":"wx1234567",
"offer_id":"12345678",
"ts":1507530737,
"zone_id":"1",
"pf":"android",
"present_counts":233,
"bill_no":"BillNo_123",
"sig":"e53e5241bbb014b3a9fcc221d66fecab8734b53fe94d7a8c65180e175e29f443",
"mp_sig":"39271a12d8d56b0395981a0990a9e75ae239c54f419cb6235399fe70acf8ccfb"
}扫二维码手机查看该文章
- 上一篇:微信小游戏防沉迷系统最新技术文档
- 下一篇:最新微信小游戏圈接口开发文档




