search
开发文档
开发文档/小游戏开发/API/平台能力/支付
支付更新时间:2025-12-24 18:14:02

qg.pay

基础信息说明

功能概述:调用平台的支付能力,完成用户支付操作。

项目说明
版本要求
前提条件需已开通并接入小游戏支付能力,开发商需能从服务端获取合法的订单信息(orderInfo),并已通过登录(qg.login + Session) 校验
使用限制orderInfo 为必填字段,且需由服务端签名生成;调用后会弹出支付弹窗,需用户主动操作完成支付
相关教程详情参考小游戏联运SDK接入文档

参数说明

qg.pay(option)

属性名类型默认值(如有)必填说明
orderInfoObject-需要由CP服务端生成的订单明细字符串,由下表中的基本参数 + 签名参数构成。参数使用URL编码成字符串
successFunction-支付成功回调
failFunction-支付失败/用户取消回调
completeFunction-接口调用结束的回调

orderInfo 字段说明(服务端生成)

参数名类型说明
appIdString游戏唯一 ID
appAccountIdIntqg.login 成功返回的 appAccountId
sessionStringqg.login 成功返回的 session
cpOrderIdStringCP 侧游戏订单号
cpUserInfoStringCP 透传字段(不可为空)
displayNameString商品展示名称
feeValueInt价格(单位:分)
signString签名的key为(AppKey 全是数字) (必传) 签名方式见下文 必须先验证 用户session验证接口,参考签名相关

回调结果说明

回调成功

参数名类型说明
memoString返回的文案或错误信息,如:"支付成功"
tradeNO-订单号
payStatusString返回值:9000(支付成功)

回调失败

参数名类型说明
memoString返回的文案或错误信息,如:"支付已取消"
code-返回的错误码(若无此字段则为空)
resultStatusString返回值:6001(已取消支付)、5000/5001(微信相关异常)等

触发与阶段说明

阶段触发时机说明
订单准备CP服务端生成 orderInfo建议先完成 qg.login 与服务端下单,拿到签名后的合法订单字符串/对象
发起支付调用 qg.pay({ orderInfo })弹出支付弹窗,用户确认/取消
成功回调支付成功始终会调用 option.complete(res)
失败/取消返回错误或用户取消option.fail(err) 被触发,随后 option.complete(err)

示例代码

qg.pay({
orderInfo: {
appId:"2882303761117490626",
appAccountId:"74317",
session:"TRQJzccscL9u6VvC",
cpOrderId:'1556088963',
cpUserInfo: '74317',
displayName: '游戏元宝',
feeValue: 100,
sign: '22fea7804df43420dc9886a04c028b6f335d87b6',
},
success: function(data){
console.log('支付成功', data)
//{memo: "支付成功", resultStatus: "9000"}
//9000: 支付成功
},
fail: function(data){
console.warn('支付失败或用户取消', data)
//{memo: "已取消支付", resultStatus: "6001"}
//6001: 已取消支付
//5000: 未安装微信
//5001: 微信订单未支付
},
complete: out => {
console.log('支付流程结束', out)
}
})

错误码说明

resultStatus说明典型场景
9000支付成功用户完成支付且平台返回成功
6001用户取消支付用户在收银台主动取消
5000未安装微信调微信支付但终端缺少微信
5001微信订单未支付跳转微信后用户未完成支付

服务端对接说明

Session 验证(必接)

发货通知(必接)

接口描述:用户支付完成后,通知游戏发货。用户支付成功后,平台将订单信息发送至开发者提供的支付回调地址,为防止被篡改,游戏需要对所收到的参数进行校验,确认收到的参数和下单的参数一致。

参数名必填类型说明
appIdString游戏 ID
cpOrderIdString游戏订单ID
cpUserInfoString开发者透传信息
uidString用户 ID
orderIdString游戏平台订单ID
orderStatusString订单状态,TRADE_SUCCESS 表示成功
payFeeString支付金额(单位:分)
productCodeString商品代码
productNameString商品名称
productCountString商品数量
payTimeString支付时间,格式 yyyy-MM-dd HH:mm:ss
partnerGiftConsumeString优惠券金额(单位:分)
signatureString使用appSecret验证签名,参考签名相关

示例代码

http://ccc.com/notify.do?appId=2882303761517239138&cpOrderId=9786bffc-996d-4553-aa33-f7e92c0b29d5&orderConsumeType=10&orderId=21140990160359583390&orderStatus=TRADE_SUCCESS&payFee=1&payTime=2014-09-05%2015:20:27&productCode=com.demo_1&productCount=1&productName=%E9%93%B6%E5%AD%901%E4%B8%A4&uid=100010&signature=1388720d978021c20aa885d9b3e1b70cec751496

发货接口说明

  • 服务端在订单支付完成之后将立即通知到CP发货接口
  • 服务器通知CP发货时,若未接收到CP接口成功返回,该笔订单将重复通知3次
  • 服务器在重复3次通知CP发货的过程中,若都未收到CP的成功回复,订单将进入后台轮询通知发货。每次轮询将有3次的通知;第一次轮询为订单新建之后的15分钟;24小时之内每半小时轮询通知一次;24小时之后每小时轮询通知一次;7天之后不再通知,CP可通过订单查询接口进行主动对账补偿
  • 服务器收到CP接口返回: {"errcode":200,"errMsg":"success"} json串时将不再对该笔订单做重复通知
  • 服务器若对某笔订单重复通知,则CP需自行判断是否已经发货,若已发货则接口直接返回: {"errcode":200,"errMsg":"success"} json串,当作成功处理。 该接口优先GET方式,返回信息全部为json结构。 该接口中所有签名编码都为UTF-8,且加密结果均转换为小写字符

订单信息查询(选接)

接口描述:服务端开发者调用该接口,可以查询具体订单信息。

请求参数

参数名类型说明
appIdString游戏 ID
cpOrderIdString游戏订单ID
uidString用户 ID
signatureString使用 appSecret 生成的签名

返回参数

参数名必填类型说明
appIdString游戏 ID
cpOrderIdString游戏订单ID
cpUserInfoStringCP透传信息
uidString用户 ID
orderIdString游戏平台订单ID
orderStatusString订单状态, TRADE_SUCCESS代表成功, WAIT_BUYER_PAY代表未支付, REPEAT_PURCHASE订购关系已经存在
payFeeString支付金额(单位:分,即 0.01 米币)
productCodeString商品代码
productNameString商品名称
productCountString商品数量
payTimeString支付时间,格式 yyyy-MM-dd HH:mm:ss
orderConsumeTypeString订单消费类型(示例返回字段)
signatureString响应签名,参考签名相关

返回参数示例

{
"signature": "eb30240cff8c66f856ec0e48354aa670b8cf037f",
"uid": "100010",
"appId": 2882303761517239300,
"cpOrderId": "9786bffc-996d-4553-aa33-f7e92c0b29d5",
"productCode": "com.demo_1",
"orderStatus": "TRADE_SUCCESS",
"productName": "%E9%93%B6%E5%AD%901%E4%B8%A4",
"productCount": 1,
"orderConsumeType": "10",
"orderId": "21140990160359583390",
"payFee": 1,
"payTime": "2014-09-05 15:20:27"
}

注意事项

  • orderInfo 通常由服务端签名生成,请勿在客户端拼接或篡改,避免校验失败
  • 支付可能被用户主动取消,务必在 fail 中区分取消与其他异常并给予用户提示
上一篇:登录
下一篇:小游戏技术常见问题(FAQ)
文档内容是否有帮助?
有帮助
无帮助