目录

没帮助

Android支付相关

一.接入配置

1. 最新支付插件版wiki

http://wiki.mg.open.qq.com/index.php?title=%E6%94%AF%E4%BB%98%E6%8E%A5%E5%85%A5

2.如何注册支付

请按照支付接入流程步骤,进行注册支付;请猛戳→Android支付接入流程

同步沙箱成功后再进行支付联调

3.怎么配置分区信息

进入支付结算,分区配置页面,添加新分区,分区ID使用数字即可,分区名称游戏自定义。

4.回调通知地址怎么填

登录open.qq.com支付结算页面,分区配置添加回调接口;每一个分区对应一个回调地址,多个分区可以使用相同的回调地址。回调地址ID和名称游戏自定义即可,仅用于区分配置的回调;接口URL必须为腾讯

内网IP,端口必须为9001。

5.支付接入有哪些接入模式

目前支付接入只有游戏币托管模式。

6.什么是游戏币托管模式

玩家充值购买虚拟货币,在游戏内消耗虚拟货币购买道具和服务。这种模式叫游戏币充值模式。这个虚拟货币都必须托管在腾讯的账户体系内。

通过客户端SDK进行充值,通过支付API完成虚拟货币的查询,扣费和退款。

7.回调通知地址是一定要使用的吗

回调地址不是一定要使用的;

回调通知接口是充值成功后支付服务端会向该接口异步发送充值游戏币是否成功的消息。

因为是异步发送充值是否成功的通知,不具备时效性,不能作为开发者判断用户充值是否成功的依据,所以该接口不是一定要使用的。

标准的流程是客户端收到充值成功回调以后主动向游戏服务端发起查询余额接口,游戏服务端调用支付后台接口得到结果,在返回给客户端,显示给用户。

8.怎么添加测试Q币

联调工具:提供在沙箱联调测试时使用的资源和工具,“充值Q币”,“充值游戏币”,“Q币余额查询”,“生成测试Q卡”和“生成测试Mpay充值卡”

登录open.qq.com,进入管理中心-支付结算页面查看:

图片1.png

9.支付是按消耗结算还是充值结算?

移动端按充值来结算。

10.什么是offerid

offerid就是应用支付ID

涉及支付的接口都是用支付ID

1).安卓应用offerid = 手Qappid

2).IOS应用请先联系腾讯产品PM注册IOS相关信息后生成

3).安卓手Q和安卓微信的支付ID都是手Qappid和key

4).IOS手Q和IOS微信的支付ID都是IOS的支付ID和key

11.pf和pfkey如何获取

pf和pfkey通过MSDK客户端接口WGGetPf()和WGGetPfKey() 获取

12.微信支付接口appid和appkey怎么填

支付接口的参数appid都是填应用支付ID,就是offerid

因为支付ID=手Qappid,所以微信登录态也填手Qappid,计算sig使用的appkey也是用手Qappkey.

二.接入联调

1.插件版客户端支付crash

未调用支付的初始化接口导致crash。

按照demo中初始化方式调用,如下图:

图片2.png

子线程中调用支付出错

支付demo默认游戏是在主线程中调用,如游戏需要在子线程中调用支付接口,请遵循android中子线程调用的规则,先Looper.prepare(),然后调用支付

2.集成版客户端支付crash

游戏打包的时候未将TenpayPlugin4Game工程的libs目录下的so库合入,导致跳转到财付通支付时crash,请游戏加入下图的so库重新打包(如果游戏的libs目录存在多个cpu架构的文件夹,那就把

libcftutils.so都拷贝一份)

如果该目录下没有libcftutils.so文件,请在解压后的TenpayPlugin4Gmae_libs文件夹内查找。

图片3.png

三.常见问题

1.支付sdk充值后客户端无回调

请检查调用支付接口之前是否注册了回调信息。支付回调的注册和接口的调用必须是成对出现,请游戏成对调用

2.为什么微信登录下没有银行卡快捷支付

微信登录的微信号需绑定银行卡才可以显示快捷支付

3.手机充值卡渠道为什么提示暂不支持该面额支付

当游戏选择定额不可改的充值方式时,购买金额和充值卡的面值不等会有这个报错提示;

4.pay_token过期如何处理

游戏服务端验证pay_token是否有效,在pay_token失效的时候,由客户端重新拉取授

权页面刷新pay_token即可。

5.配置回调地址,收不到回调通知

1).是否同步沙箱成功

2).充值是否到账

3).充值的分区是否有配置回调地址

4).Ip需使用内网ip

5).以上检查没有问题,请联系企业QQ :800013811

6.成功充值后,查余额为0

确认充值的分区和查询的分区一致,分区ID可能弄错,充值在1分区,查询到2分区,导致查询余额为0。

7.关于核查玩家充值记录

开发商使用开发者帐号或者协作者帐号登录管理中心支付结算页面,左侧最下放客服中心进入充值查询页面。根据登录帐号,充值时间进行查询。

图片4.png

登录帐号:手Q登录使用QQ号,微信登录使用openid;

充值时间设置不要跨月查询,尽量缩短时间范围查询;

支持三个月内的充值记录查询,数据两小时延迟。

8.赠送活动ID和赠送礼包ID尚未生成

图片5.png

如上图

请在联调发布页面,同步沙箱成功后自动生成赠送活动ID和赠送礼包ID

四.支付上线

1.如何申请支付现网

提交支付审核

测试环境完成测试确认都没有问题后,在open.qq.com管理中心,支付结算页面,联调发布中提交支付审批。审批通过后,即可切换支付现网环境。

图片6.png

2.如何切换支付现网环境

MSDK客户端域名切换正式环境:http://msdk.qq.com

客户端调用setEnv方法,设置成release版本

支付api使用正式环境的地址:http://msdk.qq.com

五.常见错误码

1.错误码:1016-1016-0

错误码解释:该应用没有接入权限

解决方案:

1).尚未注册支付导致,请按照支付接入流程注册支付,同步沙箱成功后再进行支付联调。

2).充值接口使用错误,游戏币模式不能使用道具直购接口。

3). 服务端接口appid使用错误;特别注意的是微信支付后台接口使用的也是手Qappid。

错误码:1018

2.错误码:1018-2-18

错误码解释:登录过期,请重新登录

解决方案:

1).用户在其他设备登录了游戏,把之前的登录态刷新了

2).游戏自己没有取到最新的登录态

3).以上检查都没有问题,请联系企业QQ :800013811

3.错误码:1018-2-20

错误码解释:登录过期,请重新登录

解决方案:

1).请检查cookie参数session_id和session_type的值是否正确

手Q:session_id=openid;session_type=kp_actoken

微信:session_id=hy_gameid;session_type=wc_actoken

2).以上检查都没有问题,请联系企业QQ :800013811

4.错误码:1018-2-21

错误码解释:登录过期,请重新登录

解决方案:

1).检查openid, openkey参数值

2).检查支付ID的设置

3).检查环境配置是否一致,测试环境和正式环境配置弄混。

4).多处登录,刷新了之前取的登录态,导致原来保存的token失效。

5).用户token过期,需重新登录。

6).请求时间戳和支付服务器时间戳时间差别太大(15min以上)。

7).以上检查没有问题,请联系系企业QQ :800013811

5.错误码:1018-2-94

错误码解释:登录过期,请重新登录

解决方案:

1).请检查openkey参数,

手Q登录openkey传入paytoken

微信登录传入accesstoken

2).以上检查没有问题,请联系系企业QQ :800013811

错误码:1001

6.错误码1001-1001-0 appid错误

错误码解释:请求参数错误,appid错误

处理方案:

1). 应用ID填错,请在应用基本信息核对应用支付ID。

2). 服务端接口报错appid错误,请检查cookie参数传递是否正确。

3). 以上检查没有问题,请联系企业QQ:800013811

7.错误码1001-1001-0 sig错误

错误码解释:sig error,sig计算错误

解决方案:

1).首先请使用签名验证工具来计算签名:http://open.qq.com/tools?,检查工具计算出的

sig和程序计算的是否一致;

2).请使用 GET请求方式;

3).cookie格式出错,注意cookie格式是key=value;key2=value2;

4). sig值在传输之前,需要进行urlencode。如果sig里边含有’=‘等特殊字符,没有

urlencode会出错。除了sig以外的参数不需要urlencode。

5).以上确认没有问题请联系企业QQ:800013811。

8.错误码1001-1007-0

错误码解释:请求参数错误

解决方案:

1).参数错误,请开发者检查zoneid、pf、pfkey参数传入是否正确;其中zoneid即分区配置的分区ID,pf、pfkey均为MSDK登录获取;

2).客户端offerid是否配置

3). pf参数中的系统运行平台描述错误,例如iap写成android,会导致pfkey报错

4). pfkey参数名称大小写请开发商注意

5).zoneid填写错误,分区ID配置后未进行同步沙箱或者现网操作

6).分区配置了角色,但是zoneid又没有传角色

7).参数检查没有问题请及时联系企业QQ:800013811

9.错误码:100-100-3004

处理方案:请查看支付的手机是否设置了代理,或者手机时间是否不正确。

10.错误码:1005-1005-0

错误码解释:对不起,交易流水不存在

处理方案:客户端和服务端支付环境不统一,一个使用了沙箱环境,另一个使用了现网环境。

11.错误码:1025-1025-0

错误码解释:应用配置信息未同步

解决方案:同步沙箱或者现网失败导致,请重新同步沙箱或者现网操作。

12.错误码:1093-1-0

内部错误,请联系企业QQ:800013811。

13.错误码:1002-212-0

错误码解释:调用扣除游戏币接口/mpay/pay_m,请求参数出现错误

解决方案:扣除游戏币接口请求参数amt不能为0,请检查参数。

14.错误码:1034-212-0

错误码解释:调用扣除游戏币接口/mpay/pay_m,请求参数出现错误

解决方案:扣除游戏币接口余额不足,建议游戏侧扣除之前查询余额,确认余额足够再扣除。

15.错误码:1003-498492-106

错误码解释:发货cgi返回格式错误

处理建议:

请开发者检查回调地址返回是否是{"msg":"OK","ret":0}格式,其中msg不能是空串,ret必须是数字。

16.错误码:1003-31008-31008

错误码解释:内部错误,没有配置该渠道

处理建议:

这个错误是在沙箱环境,客户端充值游戏币使用Q点渠道,Q点余额不足,点击充值Q点报的;沙箱环境下该渠道是关闭的,为了防止开发商误操作充值在沙箱,请开发者在现网环境下调试该渠道。

17.错误码:1003-30006-32004

错误码解释:内部错误

处理建议:

请开发者将充值游戏币接口内营销活动类型和营销活动号两个参数注释掉

老版本的demo例子里面带的营销活动参数,删掉即可,新版本已经删掉。


IOS支付相关

一.接入配置

1.最新IOS支付wiki

最新IAP版支付wiki→→IAP支付wiki

2.IOS版本如何接入支付

1).联系产品PM,在RDM上申请苹果相关信息,appleid、bundleid、测试证书和物品信息

2).请按照支付接入流程步骤,进行注册支付;请猛戳→IAP支付接入流程

3).注册支付成功后,生成的应用支付ID即为offerid,即IOS专用支付ID

4).同步沙箱成功后再进行支付联调<p>

3.关于苹果测试账号

<p>1).由产品PM在RDM申请到的测试账号即可用于沙箱测试,

2).请开发商注意,沙箱测试账号不能用于已经上架app store的正式包。

4.关于苹果沙箱

1).只有被苹果审核通过,在app stroe下载的包才是苹果正式环境,

2).游戏没有通过苹果审核,连的都是苹果沙箱。开发商在支付沙箱环境调通后,切换到支付的正式环境,这时苹果还是测试环境,

3).提交苹果审批前,一定要确保支付环境用的是正式的支付环境,避免把连接沙箱支付环境的版本提交给苹果审批

5.关于苹果物品信息

1).由产品PM在RDM注册过的物品信息,请填写在管理中心物品信息内

2).物品ID=productid;注意大小写敏感

3).游戏币数量填写该物品对应游戏币个数

4).物品单价填写在苹果登记的该物品价格

6.关于测试证书

由产品PM在RDM申请的测试证书,带有dev的是测试证书,请开发商注意。

7.offerid如何配置

请按照本文档1.2章节步骤生成offerid,并配置在工程的info

二.接入联调

1.IOS接口调用顺序

1).程序启动后,立刻设置environment;

2).获取登陆态后,立刻register;

3).以上两个不用重复调用;

4).pay之前,不需要重复调用1和2

2.在下单成功后就会走进拉取商品信息失败的回调

1).RDM上,是否将应用的In-App Purchase功能打开:在Certificates, Identifiers & Profiles中查找,确认RDM管理员帮你申请app-id时,打开了In-App Purchase选项;

2).RDM上的应用状态,请确认是否为Waiting For Upload;

3).千万确定你的工程文件中制定的bundle identifier和RDM中申请的app id是一致的, 必须一字不差,大小写敏感;

4).检查你用来测试的iOS系统版本是否过低,一般目前已知的可以支持的版本,在iOS5.0以上;

5).在RDM上检查配置的商品是否在Ready to Submit及其以后的状态,支持的其他状态还有 Submit for Review,Waiting for Review,Waiting for Upload,In Review,Approved。

6).检查你所请求的productId是否与在RDM上配置的id一致,必须一字不差,大小写敏感;

7).你是否完善了iTC账户上的银行卡信息、税务信息以及联系人信息等:这一项,一般用公司 的RDM来申请的,不会遇到这个问题,但是也不排除公司新申请的开发者账户还没有维护这 个信息,请找RDM管理员确认(另外,这一项配置后,可能要数小时才能生效,1小时到24 小时不等,请耐心等待);

8).是否刚在RDM中添加的productId?有时候也会遇到要等一会才能生效的情况;

9).是否是越狱设备?越狱设备大多数已经将app store的购买请求截流在本地,如果设备越狱, 请换一台设备测试;

10).实在没办法,把iphone上的app删掉,把xcode的编译缓存清掉,重新debug看看。

3.提示连不上iTunes Store

1). 网络问题(一般多换几个网络,不太可能都出现,比如说,freewifi出问题,可以尝试更换成3G网络;

2). 未经苹果审核正式发布的测试版本,没用使用开发者帐号下的测试帐号进行测试。(首先检 测手机App Store上是否已经登录了苹果帐号,如果有先进行注销再登录对应开发者帐号下的测试帐号)

3). 越狱的手机,也会连不上;

4). 开发环境下,用mac电脑上的模拟器,一般情况下也连不上iTunes Store,不建议在模拟器上调试midas iap 支付sdk。

5).如果没有,还是一直连不上,可以定位是苹果沙箱不稳定,请稍后再进行尝试

4.点击支付以后一直出现类似这样的提示框,导致无法进行购买

图片7.png

这种情况是因为之前有一笔同等数量的交易未完成导致票据没有Finish,当下次登录 的时候苹果会通知midas进行补发。如还未补发按以下步骤检查:

1). register接口在登录成功和重新登录成功的时候调用一次即可

2). dipose接口在游戏release自己的时候调用一次,其他地方不能调用。

3). 支付的时候不能锁定屏幕

4). payfinish回调表示苹果扣费成功但还没有发货

5). distrbutegood接口表示发货成功,这个时候刷新余额

6). 设置支付环境 在 register之前 如果确定都没有问题先kill掉,然后重新拉起登录 ,应该就会进行补发.如果还是没有补 发,这个基本就确定是苹果的沙箱不稳定造成建议更换测试账号进行测试

5.程序出现crash,或者log不符合逻辑

因为C和Objective-C混编的时候,Extern C函数中不能新建IAPHelper、Objec所以需要 在Object-C 内将所有初始化封装好。如果不是该原因请联系midas

6.应用需要上线一个包月类型的商品,该需要怎么配置

苹果后台物品登记Type值不自动续费选subscribe, 自动续费选auto renewable subscribe; 程序中producttype参数值不自动续费设置“4”,自动续费设置“2”。

7.包月类型为什么会一直发货失败

包月的商品都有一个key必须配置在我们的后台,出现该问题请联系企业QQ进行检查

8.为什么demo编译不过

把支付的framework包删掉引用,重新引入

9.时间戳冲突问题

调用赠送接口和扣费接口时,如果同一个账户同一时间对账户进行操作会引发时间搓冲突。 建议不要在同一时间多次调用赠送接口、扣费接口。

10.为什么支付无法成功或者为什么会提示“没有授权购买此商品”

未上线的应用无法使用现网环境的apple id进行支付测试,需要使用开发者帐号下的测试帐号进行 测试。该测试帐号需要找itc管理员去申请或索要。

11.包月类型业务如何修改续费类型

A:修改续费类型需要:

1)、在RDM上重新申请新的product id 并选择对应的类型(Auto-Renewable Subscription 表示自动续费包月, Non-Renewing Subscription 表示非自动续费包月)。

2)、在cpay上将对应offerid下登记的物品信息更改成,并在更改后同步沙箱现网数据。

12.苹果官方支付扣费邮件说明

由于苹果的服务器在美国,当玩家通过appel帐号进行支付后绑定邮箱会收到相应的扣费通知, 这里需要注意的是该通知的时间为美国时间。 我们查询充值流水的时候需要进行时差的转换。

三.游客模式

1.游客模式说明

游客模式是一种不使用任何帐号体系(QQ帐号或微信帐号)登录游戏的方式。游客模式下MSDK不提供关系链,好友分享等和帐号体系相关的功能。

但是提供支付功能。MSDK会给每个使用游客模式登录的 玩家分配一个和移动设备绑定的唯一ID(guestID)。

guestID 根据appid和设备ID生成。

2. 游客模式下的支付联调

1.游客模式支付接口

游客模式下支付接口不变。

2.游客模式客户端参数变化

sessionId ="hy_gameid"

sessionType ="st_dummy"

openid = guestID的值

openKey ="openkey" 注这里固定传openkey字符串

3.游客模式服务端参数变化

Cookie 参数:

session_id="hy_gameid";session_type="st_dummy"

支付API参数

openid=guestID的值

openkey="openkey" 注这里固定传"openkey" 字符串

pay_token=accesstoken

四. 常见问题

1.pay_token过期如何处理

游戏服务端验证pay_token是否有效,在pay_token失效的时候,由客户端重新拉取授

权页面刷新pay_token即可。

2.配置回调地址,收不到回调通知

1).是否同步沙箱成功

2).充值是否到账

3).充值的分区是否有配置回调地址

4).Ip需使用内网ip

5).以上检查没有问题,请联系企业QQ :800013811

3.成功充值后,查余额为0

确认充值的分区和查询的分区一致,分区ID可能弄错,充值在1分区,查询到2分区,导致查询余额为0。

4.关于核查玩家充值记录

开发商使用开发者帐号或者协作者帐号登录管理中心支付结算页面,左侧最下放客服中心进入充值查询页面。根据登录帐号,充值时间进行查询。

图片4.png

登录帐号:手Q登录使用QQ号,微信登录使用openid;

充值时间设置不要跨月查询,尽量缩短时间范围查询;

支持三个月内的充值记录查询,数据两小时延迟。

5.赠送活动ID和赠送礼包ID尚未生成

图片5.png

如上图

请在联调发布页面,同步沙箱成功后自动生成赠送活动ID和赠送礼包ID

五. 支付上线

1. 如何申请支付现网

提交支付审核

测试环境完成测试确认都没有问题后,在open.qq.com管理中心,支付结算页面,联调发布中提交支付审批。审批通过后,即可切换支付现网环境。

图片6.png

2.如何切换支付现网环境

MSDK客户端域名切换正式环境:http://msdk.qq.com

客户端调用setEnv方法,设置成release版本

支付api使用正式环境的地址:http://msdk.qq.com

六.常见错误码

1.错误码:1016-1016-0

错误码解释:该应用没有接入权限

解决方案:

1.尚未注册支付导致,请按照IAP支付接入流程注册支付,同步沙箱成功后再进行支付联调。

2.服务端接口appid使用错误;请使用IAP专用支付ID。

错误码:1018

2.错误码:1018-2-18

错误码解释:登录过期,请重新登录

解决方案:

1).用户在其他设备登录了游戏,把之前的登录态刷新了

2).游戏自己没有取到最新的登录态

3).以上检查都没有问题,请联系企业QQ :800013811

3. 错误码:1018-2-20

错误码解释:登录过期,请重新登录

解决方案:

1.请检查cookie参数session_id和session_type的值是否正确

手Q:session_id=openid;session_type=kp_actoken

微信:session_id=hy_gameid;session_type=wc_actoken

游客:session_id=hy_gameid;session_type=st_dummy

2.以上检查都没有问题,请联系企业QQ :800013811

4.错误码:1018-2-21

错误码解释:登录过期,请重新登录

解决方案:

1).检查openid, openkey参数值

2).检查支付ID的设置

3).检查环境配置是否一致,测试环境和正式环境配置弄混。

4).多处登录,刷新了之前取的登录态,导致原来保存的token失效。

5).用户token过期,需重新登录。

6).请求时间戳和支付服务器时间戳时间差别太大(15min以上)。

7).以上检查没有问题,请联系系企业QQ :800013811

5.错误码:1018-2-94

错误码解释:登录过期,请重新登录

解决方案:

1.请检查openkey参数,

手Q登录openkey传入paytoken

微信登录传入accesstoken

游客登录传入openkey固定字符串

2.以上检查没有问题,请联系系企业QQ :800013811

错误码:1001

6.错误码1001-1001-0 appid错误

错误码解释:请求参数错误,appid错误

处理方案:

1). 应用ID填错,请在应用基本信息核对应用支付ID。

2). 服务端接口报错appid错误,请检查cookie参数传递是否正确。

3). 以上检查没有问题,请联系企业QQ:800013811

7.错误码1001-1001-0 sig错误

错误码解释:sig error,sig计算错误

解决方案:

1.首先请使用签名验证工具来计算签名:http://open.qq.com/tools?,检查工具计算出的

sig和程序计算的是否一致;

2.请使用 GET请求方式;

3.cookie格式出错,注意cookie格式是key=value;key2=value2;

4. sig值在传输之前,需要进行urlencode。如果sig里边含有’=‘等特殊字符,没有

urlencode会出错。除了sig以外的参数不需要urlencode。

5.以上确认没有问题请联系企业QQ:800013811。

8.错误码1001-1007-0

错误码解释:请求参数错误

解决方案:

1.参数错误,请开发者检查zoneid、pf、pfkey参数传入是否正确;其中zoneid即分区配置的分区ID,pf、pfkey均为MSDK登录获取;

2.客户端offerid是否配置

3. pf参数中的系统运行平台描述错误,例如iap写成android,会导致pfkey报错

4. pfkey参数名称大小写请开发商注意

5.zoneid填写错误,分区ID配置后未进行同步沙箱或者现网操作

6.分区配置了角色,但是zoneid又没有传角色

7.参数检查没有问题请及时联系企业QQ:800013811

9.1005-1005-0

错误码解释:对不起,交易流水不存在

处理方案:客户端和服务端支付环境不统一,一个使用了沙箱环境,另一个使用了现网环境。

10.1025-1025-0

错误码解释:应用配置信息未同步

解决方案:同步沙箱或者现网失败导致,请重新同步沙箱或者现网操作。

11.1002-212-0

错误码解释:调用扣除游戏币接口/mpay/pay_m,请求参数出现错误

解决方案:扣除游戏币接口请求参数amt不能为0,请检查参数。

12.1034-212-0

错误码解释:调用扣除游戏币接口/mpay/pay_m,请求参数出现错误

解决方案:扣除游戏币接口余额不足,建议游戏侧扣除之前查询余额,确认余额足够再扣除。