# midas.cancelPay

本接口应在服务器端调用,详细说明参见服务端API

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0

取消订单。开通了虚拟支付的小游戏,若扣除游戏币的订单号在有效时间内,可以通过本接口取消该笔扣除游戏币的订单

调用方式:

# HTTPS 调用

# 正式环境

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 / cloudbase_access_token string 接口调用凭证

# 返回值

# Object

返回的 JSON 数据包

属性 类型 说明
errcode number 错误码
errmsg string 错误信息
bill_no string 扣除游戏币的订单号

errcode 的合法值

说明 最低版本
0 请求成功
-1 系统繁忙,此时请开发者稍候再试
90000 订单不存在
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",
}

# 云调用

云调用是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

# 正式环境

openapi.midas.cancelPay

# 沙箱环境

openapi.midas.cancelPaySandbox

需在 config.json 中配置 midas.cancelPay API 的权限,详情

# 请求参数

属性 类型 默认值 必填 说明
openid string 用户唯一标识符
appid string 小程序 appId
offerId string 米大师分配的offer_id
ts number UNIX 时间戳,单位是秒
zoneId string 游戏服务器大区id,游戏不分大区则默认zoneId ="1",String类型。如过应用选择支持角色,则角色ID接在分区ID号后用"_"连接。
pf string 平台 安卓:android
userIp string 用户外网 IP
billNo string 订单号,业务需要保证全局唯一;相同的订单号不会重复扣款。长度不超过63,只能是数字、大小写字母_-
payItem string 道具名称
sig object 签名,可使用 cloud.signature 方法计算

# 返回值

# Object

返回的 JSON 数据包

属性 类型 说明
errCode number 错误码
errMsg string 错误信息
billNo string 扣除游戏币的订单号

errCode 的合法值

说明 最低版本
0 成功

# 异常

# Object

抛出的异常

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明 最低版本
-1 系统繁忙,此时请开发者稍候再试
90000 订单不存在
90010 用户未登录或登录态已过期
90011 sig签名错误
90014 订单已支付确认完成,不允许当前操作
90015 订单已回退,不允许当前操作
90016 订单处理中
90017 没有调用接口的权限
90018 参数错误

# SDK 调用示例

// cloud = require('wx-server-sdk')
// ...
// 方法返回 Promise
cloud.openapi.midas.cancelPay({
 openid: OPENID,
 appid: APPID,
 offerId: 111111111111,
 ts: parseInt(+new Date / 1000),
 zoneId: '1',
 pf: 'android',
 billNo: 'bill_abc_1',
 sig: cloud.signature({
  type: 'midas',
  params: ['openid','appid','offerId','ts','zoneId','pf', 'billNo'],
  secret: 'xxxxxxxxxxxx',
 })
})