# 微信小游戏服务端API
# 支付服务端
# 公众号支付下单接口
# 请求URL
正式环境: https://hps4gpay.sdo.com/wx/mini/prepare
测试环境: http://hps4gpay.sdo.com/wx/mini/prepare
# 请求方式
POST
# 签名方式
HPS
# 交互流程
# 请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
gameOrderNo | true | string | 游戏订单号 |
ticket | true | string | 用户票据,从客户端getTicket接口获取 |
appId | true | string | 游戏ID,盛趣分配 |
areaId | true | string | 区ID |
groupId | false | string | 服ID |
productId | true | string | 商品ID |
extend | false | string | 扩展字段,发货时原样返回 |
# 响应参数
响应字段名 | 类型 | 说明 |
---|---|---|
return_code | int | 0表示成功 |
return_message | string | 返回代码描述信息 |
data | json | 业务响应 |
data:
参数名 | 类型 | 说明 |
---|---|---|
resultCode | int | 错误码 |
resultMsg | string | 错误描述 |
orderToken | string | 订单上下文 |
paymentUrl | string | 支付链接 |
# 错误码列表
参数名 | 错误描述 | 说明 |
---|---|---|
-10242405 | 服务不存在,请稍后再试 | 请稍后再试 |
-10242400 | 服务错误,请稍后再试 | 请稍后再试 |
-10242504 | 访问超时,请稍后再试 | 请稍后再试 |
-10242500 | 服务内部错误,请稍后再试 | 请稍后再试 |
-10242404 | 网络错误,请确保网络通畅 | 请稍后再试 |
-10242488 | 服务忙,请稍后再试 | 请稍后再试 |
-10250013 | URL不支持 | 请联系产品支持人员 |
-10250016 | 未授权访问此URL | 请联系产品支持人员 |
-10289401 | gameOrderNo为空或格式错误 | 请确认请求参数 |
-10289402 | ticket为空或格式错误 | 请确认请求参数 |
-10289403 | appId为空或格式错误 | 请确认请求参数 |
-10289404 | areaId为空或格式错误 | 请确认请求参数 |
-10289405 | productId为空或格式错误 | 请确认请求参数 |
-10289406 | groupId格式错误 | 请确认请求参数 |
-10289407 | extend格式错误 | 请确认请求参数 |
-10289409 | 无此游戏配置 | 请联系产品支持人员 |
-10289410 | 无此区服配置 | 请联系产品支持人员 |
-10289411 | 无此商品配置 | 请联系产品支持人员 |
-10289412 | 系统异常,请稍后再试 | 请联系产品支持人员 |
# 认证服务端
# 登录票据验证接口
# 请求URL
https://login4wxgame.u.sdo.com/server/verifyTicket
# 请求方式
GET
# 签名方式
HPS
# 请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
ticket | string | Y | 盛趣小游戏sdk登录票据,从客户端登录接口或客户端getTicket接口获取 |
appid | string | Y | 游戏ID,盛趣分配 |
# 响应参数
参数名 | 类型 | 说明 |
---|---|---|
code | string | 错误码 |
msg | int | 错误信息 |
data | json | 业务响应 |
data:
参数名 | 类型 | 说明 |
---|---|---|
userid | string | 盛趣用户id |
openid | string | 微信openid |
unionid | string | 微信unionid |
session_key | string | 微信服务端用户session_key,供游戏服务端使用微信相关服务,与用户一一对应,且值会变化,需要独立维护 |
# 错误码列表
参数名 | 错误描述 | 说明 |
---|---|---|
-10403011 | Token not exist. | 登录票据对应用户登录态失效或者appid不匹配 |
-10403025 | Ticket has expired. | 登录票据已失效,请重新登录或者调用getTicket接口获取 |
-10403027 | 详见接口响应 | 多错误描述,接口签名校验失败时返回具体错误原因 |
# HPS协议及签名方法
# HPS协议接入标准
请求字段名 | 类型 | 必填 | 说明 |
---|---|---|---|
merchant_name | string | Y | 接入用户名 从接入平台获取 |
signature_method | string | Y | 签名方法 目前固定MD5 |
signature | string | Y | 签名 使用签名密钥按照签名算法计算, 签名密钥从接入平台获取 |
timestamp | string | Y | Unix时间戳 1970年1月1日开始所经过的秒数 |
xxx | 业务参数,见接口具体定义 |
签名算法:
按照当前请求参数名的字母序进行升序排列(排序时区分大小写,除 signature 外,其它参数都参与签名),将所有参数-值组合以 key=value 的形式拼成一个新字符串,不同参数值之间没有任何分隔符,最后加上对应的签名密钥 secretKey 进行签名运算。如进行签名运算的串为:key1=value1key2=value2secretKey
1
2
2
签名算法:
当前请求参数名的字母序进行升序排列(排序时区分大小写,除
signature
参数,其它参数都参与签名,包括公共参数)将所有参数-值组合以 key=value 的形式拼成一个新字符串,不同参数值之间没有任何分隔符:
key1=value1key2=value2merchant_name=TESTsignature_method=MD5timestamp=1665561412
最后加上对应的签名密钥 secretKey(此密钥在接入时由支付中心提供商户号时提供一一对应) 后进行MD5哈希运算。如MD5方法的输入的字符串为:
key1=value1key2=value2merchantName=TESTsignatureMethod=MD5timestamp=1665561412secretKey
,输出为:5470BEA964810777B2984896703FC760
完整请求即:
https://test.demo.com/api?key1=value1&key2=value2&merchant_name=TEST&signature_method=MD5×tamp=1665561412&signature=5470BEA964810777B2984896703FC760