接口说明
- 请使用小程序/小游戏 appid 参与签名。
POST /api/v3/mgpay/s2s上报时机
请在用户付费后,支付平台回调给游戏服务端确认用户支付成功,且游戏后台成功给用户发放所购买的商品后,从游戏服务端调用此接口将付费数据上报过来。请完整上报所有用户、所有系统、所有支付方式的全部付费行为。
请求参数
参数名称 | 参数类型 | 是否必须 | 位置 | 参数描述 | |
type | string | √ | body | 上报类型;此处为 mgpay | |
message | string | √ | body | 消息体 | |
dteventtime | string | √ | body | 游戏事件的时间;格式 YYYY-MM-DD HH:MM:SS | |
vgameappid | string | √ | body | 小游戏 app_id | |
gameplat | string | √ | body | 小游戏平台;传 wx、tt 等,代表是微信/抖音小游戏 | |
platid | number | √ | body | 源于哪个系统发起支付,由游戏客户端采集传给游戏后台: 0 代表 iOS 1 代表 Android 2 代表 Windows PC 12 代表手机鸿蒙 7 代表 MAC 5 代表小游戏开发者工具 13 代表鸿蒙 PC | |
vroleid | string | √ | body | 玩家用户标识;玩家 ID / 角色ID,特别同个用户多区服、多角色的。没有则传空字符串 | |
openid | string | √ | body | 微信/抖音小游戏下的 openid | |
unionid | string | √ | body | 绑定在同一开放平台下的 unionid(获取不到请联系「苏」绑定账号) | |
alliedid | string | √ | body | 同公司主体下用户标识 ID;抖音小游戏专属必传(目前抖音小游戏不支持获取此字段,所以暂时也传空字符串),微信传空字符串 | |
orderid | string | √ | body | 2026年4月1日后接入此接口的 或 老游戏新增接入 iOS 原生支付的: 微信小游戏安卓支付、iOS支付(含 iOS 原生支付、iOS 客服消息支付),均改为传 out_trade_no 的值,此值必须唯一。 2026年4月1日前接入此接口的: 微信小游戏填写微信支付订单号(transaction_id 交易单号,即微信支付系统生成的唯一标识符,用于标记每笔交易,一般为 420000、450000 等开头的一串数字。安卓支付如何获取transaction_id;iOS 客服消息支付则通过支付成功回调获取 transaction_id)。 | |
iamount | number | - | body | 代币/道具数量,购买代币/道具时必传,比如购买 100 元宝传 100 过来 | |
imoney | number | √ | body | 订单付费金额;单位分 | |
productid | string | √ | body | 商品 ID | |
productname | string | √ | body | 商品名称 | |
env | string | √ | body | 支付环境;传 sandbox 代表沙箱、prod 代表现网(iOS 客服消息支付只有现网环境,iOS/安卓虚拟支付可切换沙箱或现网环境,避免将沙箱的数据报到现网库表里) | |
公共属性,请根据事件埋点 Excel 中“公共属性(服务器)”字段自行添加 | - | - | body | - | |
响应结果
// 成功
{
"code": 0,
"message": "success"
}错误码
code | 说明 |
420305 | 订单 ID 重复(重复请求) |
420301 | 参数缺失 |
420302 | 参数格式错误 |
420303 | 参数值无效 |
420306 | 业务规则验收失败 |
420308 | 游戏未接入付费上报 |
420309 | 支付金额无效 |
420310 | 必填字段为空 |
5xxxxx | 服务端错误 |
重试请求补录数据
当接口请求超时、错误码 5xxxxx 时(code >= 500000)需要重试请求补录数据。请游戏后台保存全量订单数据,便于后续进行补录等操作。
重试请求频率间隔
上报失败时间 T0,最大重试 4 次
第 1 次重试时间:T0 + 1s
第 2 次重试时间:T0 + 4s
第 3 次重试时间:T0 + 9s
第 4 次重试时间:T0 + 19s