虚拟支付

申请开通

开通微信支付

  • 主体类型为个体工商户或企业已认证小游戏

  • 开通微信支付

虚拟支付 - 图1

开通虚拟支付

虚拟支付 - 图2

支付协议签订

确认仔细阅读支付协议并签订同意

虚拟支付 - 图3

设置提现账户

用户在小游戏内完成的交易款项经结算后会提现至开发者的银行账户

虚拟支付 - 图4

游戏币托管

游戏类目内,游戏币需托管至平台

虚拟支付 - 图5

  • 管理员进行授权

虚拟支付 - 图6

  • 填写游戏币名称及兑换比例

虚拟支付 - 图7

  • 游戏分区配置

虚拟支付 - 图8

  • 联调发布

虚拟支付 - 图9

  • 应用上线申请提交后需通过审核

虚拟支付 - 图10

支付订单查询

开通虚拟支付后,可查询支付订单

虚拟支付 - 图11

开发流程

接口列表

  • [前端]支付接口:wx.requestMidasPayment
  • [服务端]获取游戏币余额:midas.getBalance
  • [服务端]扣除游戏币:midas.pay
  • [服务端]取消订单:midas.cancelPay
  • [服务端]给用户赠送游戏币:midas.present

调用时序图

虚拟支付 - 图12

签名计算

以查询余额的接口为例

  • 原始请求信息

  • 米大师密钥:zNLgAGgqsEWJOg1nFVaO5r7fAlIQxr1u

  • HTTP请求方式: POST
  • 请求的URI: /cgi-bin/midas/getbalance

  • sig签名

  • 参与米大师签名请求参数

  1. "openid":"odkx20ENSNa2w5y3g_qOkOvBNM1g",
  2. "appid":"wx1234567",
  3. "offer_id":"12345678",
  4. "ts":1507530737,
  5. "zone_id":"1",
  6. "pf":"android"
  • 对参与米大师签名的参数按照key=value的格式,并按照参数名ASCII字典序升序排序如下:
  1. stringA="appid=wx1234567&offer_id=12345678&openid=odkx20ENSNa2w5y3g_qOkOvBNM1g&pf=android&ts=1507530737&zone_id=1"
  • 拼接uri、method和米大师密钥:
  1. stringSignTemp=stringA+"&org_loc=/cgi-bin/midas/getbalance&method=POST&secret=zNLgAGgqsEWJOg1nFVaO5r7fAlIQxr1u"
  • 把米大师密钥作为key,使用HMAC-SHA256得到签名。
  1. sig=hmac_sha256(key,stringSignTemp)
  2. ="1ad64e8dcb2ec1dc486b7fdf01f4a15159fc623dc3422470e51cf6870734726b"

PS:密钥即米大师平台上的 AppKey

  • mp_sig签名

  • 参与开平签名请求参数

  1. "access_token":"ACCESSTOKEN",
  2. "openid":"odkx20ENSNa2w5y3g_qOkOvBNM1g",
  3. "appid":"wx1234567",
  4. "offer_id":"12345678",
  5. "ts":1507530737,
  6. "zone_id":"1",
  7. "pf":"android",
  8. "sig":"1ad64e8dcb2ec1dc486b7fdf01f4a15159fc623dc3422470e51cf6870734726b"
  • 对参与开平签名的参数按照key=value的格式,并按照参数名ASCII字典序升序排序如下:
  1. stringA="access_token=ACCESSTOKEN&appid=wx1234567&offer_id=12345678&openid=odkx20ENSNa2w5y3g_qOkOvBNM1g&pf=android&sig=1ad64e8dcb2ec1dc486b7fdf01f4a15159fc623dc3422470e51cf6870734726b&ts=1507530737&zone_id=1"
  • 拼接uri、method和session_key:
  1. stringSignTemp=stringA+"&org_loc=/cgi-bin/midas/getbalance&method=POST&session_key=V7Q38/i2KXaqrQyl2Yx9Hg=="
  • 把session_key作为key,使用HMAC-SHA256得到签名。
  1. mp_sig=hmac_sha256(key,stringSignTemp)
  2. ="ff4c5bb39dea1002a8f03be0438724e1a8bcea5ebce8f221f9b9fea3bcf3bf76"