# 虚拟支付
对标wx小游戏虚拟支付部分 (opens new window)
下列api的调用中,我们能够自动兼容前缀为 wx 和 mt 的接口,在打包过程中会对wx开头的api进行调用替换,无需手工处理。
# 发起请求
已支持API:
API 实例 API 说明 iOS Android mt.requestMidasPayment 调用支付 12.18.200 11.6.200
备注:iOS 低于 12.18.200 的版本提示:“当前美团APP版本过低,未开通 iOS 支付,请升级最新版本”
不支持API:
- mt.requestMidasFriendPayment
# 请求参数
| 参数名 | 类型 | 默认值 | 是否必填 | 说明 |
|---|---|---|---|---|
| mgcId | String | 是 | 游戏用户 id | |
| appId | String | 是 | appId | |
| accessToken | String | 是 | 游戏用户 token | |
| productId | String | 是 | 商品 id(对应价格档位),具体见价格档位 | |
| bizOrderNo | String | 是 | 业务方订单号,需唯一。 | |
| productName | String | 否 | 内购商品名称 | |
| productDesc | String | 否 | 内购商品描述 | |
| productUrl | String | 否 | 内购商品图片链接 | |
| needRefresh | number | 0 | 否 | 0: 支付完成后游戏会重新加载。1: 支付完成后会回到之前的游戏,游戏不会重新加载。 |
| success | function | 否 | iOS 支付外跳时 App 可能被回收,无法保证一定会有回调,支付结果请完全依赖后端流程。 | |
| fail | function | 否 | ||
| Complete | function | 否 |
# 错误码说明
# 回调结构与版本差异
成功回调示例:
{ "errMsg": "requestMidasPayment:ok" }失败回调示例:
{ "errCode": 1001, "errMsg": "1001:支付取消" }成功回调可通过
errMsg == "requestMidasPayment:ok"判断。版本差异主要体现在失败回调:
- 美团版本低于
12.57.200:errCode恒为0,通常需要从errMsg中解析具体错误码。 - 美团版本
12.57.200及以上:errCode直接返回具体业务错误码,且新增了一部分错误码。
- 美团版本低于
# 错误码表
| errCode | errMsg 示例 | 业务含义 | 支持版本 | 业务方建议 |
|---|---|---|---|---|
| 1001 | 1001:支付取消 | 用户取消支付 | - | 按取消处理 |
| 1002 | 1002:支付失败 | 支付失败 | - | 按支付失败处理 |
| 1005 | 1005 / 1005:错误信息 | 支付请求异常,可能携带错误信息 | - | 按支付失败处理 |
| 710016 | 710016:参数错误 | 参数错误 | - | 检查入参后重试 |
| 710001 | 710001:未登录、登录过期 | 未登录、登录过期 | - | 引导登录后重试 |
| 720001 | 720001:错误信息 | 实名失败 | 12.57.200+ | 按支付失败处理;如业务已有实名引导能力,可引导用户先完成实名 |
| 18001006 | 18001006:未勾选需要开通的支付档位 | 未勾选需要开通的支付档位 | - | 检查开放平台配置 |
| 18001025 | 18001025:错误信息 | 重复提交,订单支付失败 | 12.57.200+ | 按失败处理,不建议立即再次发起支付 |
| 18001026 | 18001026:错误信息 | 重复提交,订单已退款 | 12.57.200+ | 按失败处理,不建议立即再次发起支付 |
| 18001027 | 18001027:错误信息 | 重复提交,订单已支付 | 12.57.200+ | 不直接按成功发放;如有能力可补充校验订单状态 |
| 18001037 | 18001037:错误信息 | 该年龄段不可下单(防沉迷相关限制) | 12.57.200+ | 平台侧会有弹窗提示;业务侧按限制场景处理,不再继续引导支付 |
| 18001038 | 18001038:错误信息 | 单笔金额超限(防沉迷相关限制) | 12.57.200+ | 平台侧会有弹窗提示;业务侧可按规则引导调整后重试 |
| 18001039 | 18001039:错误信息 | 月累计金额超限(防沉迷相关限制) | 12.57.200+ | 平台侧会有弹窗提示;业务侧按限制场景处理,不再继续引导支付 |
| 18001040 | 18001040:请在开放平台应用设置里面,勾选接入游戏:实名认证(国家防沉迷)并绑定渠道 | 未接入实名认证能力或未绑定渠道 | - | 检查开放平台实名认证配置 |
| 18001042 | 18001042:错误信息 | 通用支付提示 | - | 平台侧会有弹窗提示;业务侧可直接按失败处理 |
| 18002000~18002999 | 18002000~18002999:错误信息 | 权益 / 优惠券 / 频控类失败 | 12.57.200+ | 可展示错误信息,并引导用户重新发起支付 |
| 其他错误码 | 错误码:错误信息 | 其他业务失败 | - | 按支付失败处理;如需提示,可直接展示错误信息 |
说明:
-表示老版本已支持;12.57.200+表示该错误码自美团12.57.200起新增。
# 推荐接入方式
- 最简接入:
errCode == 1001:当作用户取消。- 其他所有失败:当作支付失败。
- 标准接入:
errCode == 1001:取消。errCode == 1005:支付请求异常。errCode == 720001:实名失败。18002000 <= errCode <= 18002999:权益 / 优惠券 / 频控类失败。- 其他错误码:其他业务失败。
- 如果业务需要弹文案,注意
errMsg仍可能带错误码前缀;如只需展示错误信息,建议先去掉错误码前缀后再展示。
# 价格档位
| productId | 档位金额 |
|---|---|
| 1 | 1元档位 |
| 2 | 3元档位 |
| 3 | 5元档位 |
| 4 | 6元档位 |
| 5 | 10元档位 |
| 6 | 12元档位 |
| 7 | 18元档位 |
| 8 | 25元档位 |
| 9 | 30元档位 |
| 10 | 50元档位 |
| 11 | 60元档位 |
| 12 | 68元档位 |
| 13 | 98元档位 |
| 14 | 100元档位 |
| 15 | 128元档位 |
| 16 | 150元档位 |
| 17 | 168元档位 |
| 18 | 198元档位 |
| 19 | 200元档位 |
| 20 | 328元档位 |
| 21 | 500元档位 |
| 22 | 648元档位 |
| 23 | 1000元档位 |
| 24 | 8元档位 |
| 25 | 88元档位 |
| 26 | 108元档位 |
| 27 | 118元档 |
| 28 | 148元档 |
| 29 | 998元档 |
| 30 | 1998元档 |
| 31 | 20元档 |
| 32 | 28元档 |
| 33 | 58元档 |
| 34 | 288元档 |
| 35 | 388元档 |
| 36 | 488元档 |
| 37 | 688元档 |
| 38 | 888元档 |