购买道具前端接口

目录

1.购买道具下订单

1.1 URL地址

【现网】https://openapi.tencentyun.com/mpay/buy_goods_m
【沙箱】http://119.147.19.43/mpay/buy_goods_m

1.2 功能说明

道具直购模式,需要应用调用该接口执行下订单操作。

1.3 请求参数

Cookie里面需要包含的参数:
参数名 参数说明
session_id 用户账户类型,session_id =“openid”(固定传“openid”,不是传openid值)
session_type session类型,session_type = “kp_actoken”(固定传”kp_actoken”,不是传kp_actoken值)
org_loc 需要填写: /mpay/buy_goods_m
appip (可选)来源的第三方应用的服务IP

注意:cookie里面参数的值,需要进行urlencode


请求参数:
参数名 参数说明
openid 从手Q登录态中获取的openid的值
openkey 从手Q登录态中获取的access_token 的值
pay_token 从手Q登录态中获取的pay_token的值
appid 应用的唯一ID。可以通过appid查找APP基本信息。这个appid在数值上和支付ID也就是客户端设置的offerid是相同的
ts UNIX时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)。
payitem 请使用x*p*num的格式,x表示物品ID,p表示单价(以Q点为单位,1Q币=10Q点,单价的制定需遵循腾讯定价规范),num表示默认的购买数量。(格式:物品ID1*单价1*建议数量1,批量购买物品时使用;分隔,如:id1*price1*num1;id2*price2*num2)长度必须<=512。
goodsmeta 物品信息,格式必须是“name*des”,批量购买套餐时也只能有1个道具名称和1个描述,即给出该套餐的名称和描述。name表示物品的名称,des表示物品的描述信息。用户购买物品的确认支付页面,将显示该物品信息。长度必须<=256字符,必须使用utf8编码。目前goodsmeta超过76个字符后不能添加回车字符。
goodsurl 物品的图片url(长度<512字符)。
sig 请求串的签名(可以参考下面具体示例,或者到wiki下载SDK)。
pf 平台来源,平台-注册渠道-系统运行平台-安装渠道-业务自定义。

例如:desktop_m_qq-10000144-android-2002--xxxx
qq_m_qq 表示 手Q平台启动,用qq登录态

zoneid 账户分区ID_角色。和PC接入时保持一致,分区可以在open.qq.com上自助配置。

注意:如果游戏PC端和移动端是游戏币互通模式,zoneid 的数值保持和PC侧接入支付时传递的一致。例如,游戏A在PC上运行是接入过支付,PC上有分区0和分区1,再接入移动支付是要求移动端账户和PC端账户互通,那么接入移动支付时,zoneid根据需要由业务自己传递PC上配置的分区ID,对0分区操作就传0,对1分区操作就传1

pfkey 登录成功后平台直接传给应用,应用原样传给平台即可强校验pfKey=”58FCB2258B0BF818008382BD025E8022”(来自平台),自研应用固定传 pfkey="pfkey。
amt (可选)道具总价格。(amt必须等于所有物品:单价*建议数量的总和,该参数的单位为0.1Q点,即1分钱)。
max_num (可选) 用户可购买的道具数量的最大值。

仅当appmode的值为2时,可以输入该参数。输入的值需大于参数“payitem”中的num,如果小于num,则自动调整为num的值。

appmode (可选)1表示用户不可以修改物品数量,2 表示用户可以选择购买物品的数量。默认2(批量购买的时候,必须等于1)。
app_metadata (可选)发货时透传给应用,长度必须<=128字符。
userip (可选)用户的外网IP。
format (可选)json、jsonp_$func。默认json。如果jsonp,前缀为:$func

例如:format=jsonp_sample_pay,返回格式前缀为:sample_pay()。


1.4 请求示例

示例:(仅演示sig生成使用)
appkey: Lf6AtMEB1QlE8BYS&
method:GET
url_path: /mpay/buy_goods_m

[openid] : [F11669C63D76BAB0BC2F6CC869B19E53]
[openkey] : [3968DD5F3F14427EF103A05E00AB59B4]
[pf] : [desktop_m_qq-10000144-android-2002-]
[pfkey] : [d0cd576ad99fcea674f09ce24da65345]
[pay_token] : [91E5CE357A0EE02C9C105FBF95703001]
[ts] : [1396324143]
[payitem] : [G1*20*2]
[goodsmeta] : [name*goodsinfo]
[goodsurl] : [http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif]
[zoneid] : [1]
[app_metadata] : [customkey]
[format] : [json]
[appid] : [1101255891]

构造源串。得到的源串为:
GET&%2Fmpay%2Fbuy_goods_m&app_metadata%3Dcustomkey%26appid%3D1101255891%26format%3Djson%26 goodsmeta%3Dname%2Agoodsinfo%26goodsurl%3Dhttp%3A%2F%2Fimgcache.qq.com%2Fqzone%2Fspace_ite m%2Fpre%2F0%2F66768.gif%26openid%3DF11669C63D76BAB0BC2F6CC869B19E53%26openkey%3D3968DD5F3F 14427EF103A05E00AB59B4%26pay_token%3D91E5CE357A0EE02C9C105FBF95703001%26payitem%3DG1%2A20% 2A2%26pf%3Ddesktop_m_qq-10000144-android-2002-%26pfkey%3Dd0cd576ad99fcea674f09ce24da65345% 26ts%3D1396324143%26zoneid%3D1

请求的源串:
http://119.147.19.43/mpay/buy_goods_m?openid=F11669C63D76BAB0BC2F6CC869B1 9E53&openkey=3968DD5F3F14427EF103A05E00AB59B4&pf=desktop_m_qq-10000144-android-2002-&pfkey =d0cd576ad99fcea674f09ce24da65345&pay_token=91E5CE357A0EE02C9C105FBF95703001&ts=1396324143 &payitem=G1*20*2&goodsmeta=name*goodsinfo&goodsurl=http://imgcache.qq.com /qzone/space_item/pre/0/66768.gif&zoneid=1&app_metadata=customkey&format=json&appid=110125 5891&sig=MOtz%2B4Nbihq%2BIo9YWaUHUsdw2Lo%3D

1.5 返回参数说明

示例:

ret 返回码
0 成功
非0 失败
1018 登陆校验失败

token_id:ret为0的时候,开发者需要保留。后续扣费成功后调用第三方发货时,会再传给开发者,作为本次交易的标识。
url_params:ret为0的时候,返回真正购买物品的url的参数,开发者需要把该参数传给sdk跳转到相关页面使用户完成真正的购买动作。

1.6 返回示例

正确返回示例

Content-type: text/html; charset=utf-8
{"ret":0,"url_params":"/v1/san/11157/mobile_goods_info?token_id=706E0C25FD24B948DD129CBC202129B922463 ","token" : "706E0C25FD24B948DD129CBC202129B922463"}

错误返回示例

Content-type: text/html; charset=utf-8
{"ret":1018,"msg":"请先登录"}

2.购买道具前端接口

public void SaveGoods()

包名:
com.tencent.unipay.plugsdk
说明:
开启购买道具界面,引导用户完成购买道具,唤起道具直购界面前,应用需要调用数平侧计费后台api(mpay/buy_goods_m,参加道具直购后台协议)下订单,将订单(tokenUrl参数)传递给sdk。sdk完成渠道的选择和支付。
参数:

参数名 参数类型 说明
userId String 用户的openid,登录时候获取。例如:userId = “559B3E350A3AC6EB5CA98068AE5BA451”(openid)
userKey String 例如:userKey = “29d8443676b3be073ac56348417cbe65” (pay_token)特别注意这里填的是登录时候获取并且是支付时专用的pay_token。
sessionId String 登陆态帐号类型,需和sessionType成对匹配,例如:sessionId = “openid”(固定传“openid”,不是传openid值)
sessionType String 登陆态票据类型,需和sessionId成对匹配。例如:sessionType = “kp_actoken” (固定传“kp_actoken”,不是传kp_actoken值)如:手Q: sessionId =“openid” sessionType = “kp_actoken”
pf String 平台标识信息:平台-注册渠道-系统运行平台-安装渠道-业务自定义,如果业务没有自定义,格式可以为平台-渠道-操作系统。

渠道表示应用发布的渠道:如应用宝、豌豆荚等。用数字表示,例如: 手Q平台启动,用qq登录态:qq_m_qq-2001-android-2011-xxxx

pfKey String 登录成功后由平台直接传给应用,应用原样传给平台即可强校验

pfKey=”58FCB2258B0BF818008382BD025E8022”(来自平台) 注:腾讯公司自己研发的应用固定传 pfkey="pfkey"

tokenUrl String 应用侧在唤起购买SDK前,应用后台支付服务器下的订单Url,也就是调用buy_goods_m支付Api时返回的url_params的值
goodsResId Byte[] 道具图标id, 图标像素要求:48*48
zoneid String 账户分区ID_角色。和PC接入时保持一致,分区可以在open.qq.com上自助配置。如过应用选择支持角色,则角色接在分区ID号后用"_"连接,角色需要进行urlencode。
remark String 自定义参数,暂时保留,没有实际作用,需要自定义字段可以参考并使用/mpay/buy_goods_m里的app_metadata透传参数。

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部