使用华为支付sdk游戏中心sdk进行支付时,出现“支付检测失败,失败错误码:1”

游戏SDK能接微信支付么?如果能(见360游戏SDK接了),包名问题是如何处理的
在开放平台新建移动应用时要配置应用包名,但SDK要接到成百上千的游戏里最终出的包名不可能一样
我不懂游戏SDK可否接入微信支付只是我们公司(付钱拉)提供微信支付,支付宝支付,银联支付等聚合支付SDK。不知您的SDK中嵌入我们的聚合支付SDK就可以解决支付问题 啦,希望有帮到你~
暂时了解到爱贝可能是在原生sdk中利用h5模式来接入微信支付,这样就避开了包名的问题
我也是啊。你们解决了吗?
你好!我也遇到这个问题:在开放平台新建移动应用时就要配置应用包名,我们提供的是sdk,里面要集成微信支付,这个包名怎么搞???
sdk都是作为库工程打成jar包的,游戏会引用sdk的jar包。例如:360里的游戏都集成了360sdk的jar包 360的jar包中集成了微信支付的jar包,微信支付的jar包中有获取本应用签名的方法,这个方法默认获取的是360jar包工程中的签名而不是集成了360sdk的游戏应用的签名 安卓工程做成jar包的时候是可以加入签名也可以不加入签名的。你可以下载360的sdk,反编译一下360的jar包就知道了。本人是javaweb,不懂安卓,有说的不对的勿喷。
已有帐号?
无法登录?
社交帐号登录后使用快捷导航没有帐号?
平板/笔记本
为什么我的watch支付宝老是绑定失败?
&略有小成&
来自:荣耀7i ATH-AL00
支付宝系统9.6的呀?手表也是最新系统的?
width:100%">
&独步江湖&
来自:华为Mate8 NXT-AL10
卸载支付宝,清除数据,重新去应用市场下载安装!
width:100%">
&花粉版主&
来自:浏览器
卸载重装试试看吧,应用市场目前的版本我也在用,没有出现过断连
width:100%">
&渐入佳境&
来自:浏览器
width:100%">
&花粉特种部队&
来自:浏览器
最新版本的支付宝已经解决了绑定的问题,只需先在手机端卸载支付宝,清除数据后重新去华为应用市场下载支付宝后绑定即可。
求助花粉特种部队请您将问题帖发到“问题反馈“一栏中进行反馈或提供相关后续信息,如有疑问请在我的跟帖中“回复”我,我会继续跟进此问题!如果我的回复解决了您的问题,请点击下方的“支持”!您的鼓励就是我们工作的动力,感谢您的配合与支持!!!
width:100%">
&新学乍练&
来自:Le X820
卸载支付宝,如何清除数据,谢谢
width:100%">
&自成一派&
来自:华为Mate8 NXT-AL10
学习一下!!!!!!!!!!!
width:100%">
&华为研发服务支持&
来自:浏览器
楼主您好,请检查支付宝绑定步骤,最新版的支付宝更新后,需要在我的-设置-安全中心-安全保护工具&&中进行绑定。
如果绑定失败 可以尝试重启手机蓝牙后再来
width:100%">
1000万花粉
纪念花粉俱乐部注册花粉数超过1000万
应用分享达人
应用资源合集不得少于3个(合集内资源量不得少于10个);应用资源帖不得少于30个;应用资源下载总量不低于2000
好基友勋章
花粉好机友,注册时间大于99天
在职斑竹的身份勋章,感谢斑竹的辛勤劳动
花粉特种部队荣耀勋章
【汉风雅韵】【大美黄山】【6X大岞行】【十月秋收】【P9随手拍】【盛放花朵】
花粉客户端
Make it Possible
Make your device special
华为云服务
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
没有最新动态
关注花粉俱乐部
联系我们:
|关注花粉俱乐部:
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利当前位置:
&&&刷机失败解决办法(各种错误提示)欢迎补充
刷机失败解决办法(各种错误提示)欢迎补充
&12教程说明:
& && &&&由于厨房一直停留在0.224版本而没有再更新,因此使用厨房打包的ROM包的刷机脚本对新的系统已经不再支持。使用厨房工具打包生成的ROM包直接刷入系统一般都会出错,更有甚者如果你不检查下刷机脚本就直接刷入手机,很可能导致你的手机变砖(常见于系统移植时忘了修改分区表)。 刷机脚本在recovery界面执行时常见的错误有:assert failed的错误、status 0的错误、status 6的错误、status 7的错误。下面将给出这些错误提示的分析以及解决办法!
厨房自动生成的updater-script刷机脚本虽然不能直接使用,但是我们需要修复的地方也不多。
1. format函数参数问题
修改方法: 从其他正常使用的ROM包中提取updat-binary和updater-script两个文件,将updat-binary替换进厨房自动生成的ROM包的同名文件。然后比对这里正常的updater-script文件和厨房生成的updater-script文件,将厨房生成的updater-script脚本中的所有关于format函数和mount函数的行全部照着正常的ROM包的updater-script脚本来修改。例如上图中就需要把右边的2个红色的行全部替换为左边对应的行。 上图中左边下面的几个红色行是关于data分区的操作脚本命令。如果你厨房生成的脚本也含data分区的操作,那么同样需要修改成和左边一致。
2. boot.img文件的刷入问题
boot.img文件的刷入有两种方式,厨房脚本生成的MTK平台的刷boot.img脚本如下:
assert(package_extract_file(&boot.img&, &/tmp/boot.img&),
& && & write_raw_image(&/tmp/boot.img&, &boot&),
& && & delet(&/tmp/boot.img&));
这个语句会判断boot.img是否刷入成功,MTK平台的机器有时上面的脚本执行会出错误,所以建议MTK平台刷boot.img脚本修改为下面的语句:
package_extract_file(&boot.img&, &/dev/bootimg&);
3. 刷机失败出现status 0错误
这种错误一般是因为updat-binary在你的机器上不能执行导致的,解决这个问题的办法很简单,找一个你机器能够使用的ROM包的updat-binary文件,然后替换进你自己的ROM包中。此时你还需要检查updater-script脚本中format和mount函数的参数是否一致。如果不一致,你就需要参照正常的ROM包的刷机脚本来修改,全部修改为正常ROM包的刷机脚本命令。&updat-binary和updater-script是配套使用的,所以替换了updat-binary就需要注意比对修改updater-script.
4. 刷机失败出现status 6, status 7的错误
这种错误一般是updater-script脚本的问题,包括脚本里面添加了操作某些文件的语句,但是实际上ROM包中并不存在这样的文件。常见的就是/system/etc/install-recovery.sh文件,如果你的ROM包中没这个文件而刷机脚本中却对这个文件进行了操作,那么刷机就会失败报错。所以你需要删掉脚本中这种空操作的语句。
5. assert failed错误
这个错误一般是脚本的第一行加了机型判断,把刷机脚本的第一行的assert语句删掉就行了。这个错误可能是recovery没有getprop这个命令导致的,也可能是你机型不对应导致的。
刷机出现错误,通过查看/tmp/recovery.log一般都能够看到问题所在。如果自己不会看可以把这个文件提取出来,然后给会看的人看。提取该文件很简单,recovery模式下使用命令:adb pull /tmp/recovery.log即可将手机中的recovery.log文件提取到你电脑的当前操作目录。如果你的电脑没有安装sdk,那么你可能运行不了adb命令,这时你可以下载一个刷recovery的工具或者刷boot.img的工具,这些工具一般都带有adb.exe文件的,你进入到含adb.exe的目录下,再运行上面的命令把log导出来就行了。如果需要直接在手机中查看recovery.log文件内容,可以使用adb命令进入手机终端,然后输入: cat /tmp/recovery.log即可。
最新手机资讯、行业爆料、产品评测
尽在亿智蘑菇微信公众号(ROMzhushou)
37人申请【集电时尚卡座移动电源】
80人申请【乐心智能手环ziva】
137人申请【Himama智能备孕仪】
432人申请【Yeelight彩光灯带】
729人申请【唯乐小黑3智能手表】
¥299【censi】嗨 想拥有一对猫耳吗?
¥238【鸦鸦】让童年与众不同
¥39.5【真谛】你的膝盖 有他呵护
¥158【蕊芽】塑造完美的你
¥399【乐心】你的心跳独一无二
微信添加"亿智蘑菇"获取我们的服务
微博添加"亿智蘑菇"获取我们的服务
下次自动登录
微信扫一扫 立即登录&&&&华为支付SDK服务端回调接口V1.0.1
华为支付SDK服务端回调接口V1.0.1
华为支付SDK服务端回调接口V1.0.1
嵌到我的页面
<input type="text" readonly="true" value="">
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
移动开发下载排行后使用我的收藏没有帐号?
所属分类: &
查看: 48218|回复: 6
完整版SDK必须接入的功能规定
TA的勋章:
本帖最后由 啊,将进酒 于
10:31 编辑
91SDK必须接入的功能: SDK屏幕方向设置、初始化API、账号登陆、SDK支付、SDK暂停页和退出页、SDK工具条。91SDK必须遵守的规定(这个也别忘记):
对以上必须接入的功能要求有疑问请找91商务或91运营咨询
SDK接入过程中有SDK相关技术需要求助找技术支持咨询
当游戏提交,报告中的BUG描述看不懂或无法复现BUG找QA咨询
注意:SDK的所有API都必须在主线程中调用,91SDK3.2.6.5不支持iOS8,接入过程中请使用越狱机测试。
一.SDK屏幕方向设置(在初始化API之前调用)1.& &API:ndSetScreenOrientation2.& &SDK的屏幕方向必须和游戏方向保持一致。设置代码参考《SDK客户端文档》。3.& &iOS初始化代码中参数orientation,可设置SDK的屏幕方向。此参数初始化时设置了则无需另外调用ndSetScreenOrientation。举例:NdInitConfigure *cfg = [[[NdInitConfigure alloc] init] autorelease];cfg.appid = 100010;
cfg.appKey =@&CF27A9BCAA6E9C75&;
//单机或弱联网建议该参数改为:ND_VERSION_CHECK_LEVEL_NORMAL,versionCheckLevel参数作用详见文档说明
cfg.versionCheckLevel = ND_VERSION_CHECK_LEVEL_STRICT;
//orientation 的设置详见文档的说明(这里以设置竖屏为例)
cfg.orientation = UIInterfaceOrientationP
cfg.autoRotate = YES;& &//这里设置是否要自动转屏
[[NdComPlatform defaultPlatform] NdInit:cfg];4. 手机在照相时崩溃,该问题非SDK问题,属于开发技术,您可以自行百度或参考如下解决方案。最快速的解决方案:由于系统要求相册只能是UIInterfaceOrientationPortrait方向,所以应用需要增加对竖屏的支持。在工程配置中选中Portrait项。如果没有对Portrait项进行支持,用户在更换头像的时候会崩溃。
图片1.png (42.12 KB, 下载次数: 18)
11:37 上传
其他方案:1.把NSRunLoopCommonModes改成NSDefaultRunLoopM2.UIViewController 子类中 重写方法如下方法
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation&&
& & return (interfaceOrientation !=UIInterfaceOrientationxxxx);&&
#ifdef __IPHONE_6_0
- (BOOL)shouldAutorotate&&
& & return YES;&&
- (NSUInteger)supportedInterfaceOrientations&&
& & return UIInterfaceOrientationM&&
#endif在appDelegate中,添加如下方法:
#ifdef __IPHONE_6_0
- (NSUInteger)application:(UIApplication *)applicationsupportedInterfaceOrientationsForWindow:(UIWindow *)window&&
& &&&return UIInterfaceOrientationMaskA&&
#endif测试方法:进91社区,在个人中心使用拍照功能是否导致游戏崩溃。
二.初始化API(集成了更新)1.& &API:ndInit2.& &单机或弱联网游戏特别注意:如果您的游戏客户端可以在无网络的情况下进行游戏,那么初始化SDK的时候versionCheckLevel (iOS)、setNdVersionCheckStatus(Android)的参数必须设置为普通检查等级,否则默认初始化SDK检查更新无网络将进不了游戏。3.& &初始化API中集成了91更新功能。游戏中允许存在图片影音的资源更新存在,但必须在初始化API之后执行,Android游戏在非WIFI环境下载资源的必须弹窗提示玩家,不允许直接下载资源,否则会被系统认为恶意软件,被自动下架。4& & 不需要考虑更新的逻辑,SDK已经把更新逻辑都处理了,您只需要在初始化回调中写相应代码(初始化游戏、登陆、进入游戏、关闭游戏等)。SDK开发文档中示范代码必须要看。5.& &测试更新功能的方法:在初始化API前调用ndSetDebugMode、在91DEV后台测试版本号大于客户端的版本号。这样有网络的情况下就会跳出更新提示框。6.& &强制更新与普通更新说明:强制更新是当游戏有重大BUG或者服务器端版本升级非客户端升级不能游戏的情况下使用,普通更新为游戏允许玩家使用多个版本的客户端并存时使用。测试版本号需要在DEV后台进行更改,客户端版本号参照《SDK客户端文档》中版本号设定规则章节。
1.png (68.7 KB, 下载次数: 14)
11:54 上传
7.存在有多个Activity的Android游戏,初始化回调中必须写上退出游戏的方法。mOnInitCompleteListener = new OnInitCompleteListener(){& & @Override& & protected void onComplete(int ndFlag) {& && & switch (ndFlag) {& && & case OnInitCompleteListener.FLAG_NORMAL:& && && &&&initGame(); // 初始化自己的游戏& && && &&&& && & case OnInitCompleteListener.FLAG_FORCE_CLOSE:& && & default:& && && & // 调用关闭游戏的方法,这里千万别忘记写代码了!!& && && &&&}}8. iOS的游戏要求URL identifier与URL Schemes要做设置,详见:。& && && && && && && && && && && && && && && && && && && &&&
三.91账号登陆(近期要求:不建议使用游客登录,请使用普通登录)1. API:ndLogin2. 91SDK采用自动登陆机制,即玩家登陆成功后,未进行注销,则以后进入游戏不再出现登陆框,自动提示登陆成功,代码中可以在登陆的监听回调中捕获账号登陆状态。请勿试图改变91SDK自动登陆的机制,这个是91业务上的规定。3. 游戏需求:初始化游戏成功后则自动登陆游戏的,请将登陆API放在SDK初始化API的回调中,切勿并行调用。错误的例子如:ndInit();…ndLogin();…账号登录框与更新提示框同时存在是错误的,测试方法参考初始化中第4点。4. 登陆时机:A. 网络游戏必须在进游戏前进行91账号的登陆,即账号必须存在才可以游戏,故网络游戏中如果玩家注销账号,玩家将不能继续游戏。B. 单机游戏可以在对道具进行支付购买时才调用登陆。5. UIN即是玩家ID(唯一,不变),API:ndLoginUin。SDK没有提供获取91账号的API;NICKNAME是昵称,玩家可以随时变更;SESSIONID是服务端SESSION,也是会变的。6. iOS的登录、注销、切换账号监听的是哪个消息?答:不管是登录,切换账号,还是注销,都是监听kNdCPLoginNotification
收到这个消息的时候,判断当前登录是否成功,
如果不成功:
&&a.如果之前有登录用户,那就是注销;
&&b.如果之前没有登录用户,那就是用户还没有登录。
如果成功:
&&a.如果之前有登录用户,那就是切换账号;
&&b.如果之前没有登录用户,那就是第一个用户登录。
还有一个额外的要关注:如果收到session无效的通知,表明用户已经处于未登录状态了。7.游戏中如果不能实现切换账号,在iOS中如何注销游戏?事件捕获:登陆用户的监听中,用户未登陆的CASE内,能够捕获到91社区内的注销的事件。解决方案:提示用户自己重启,卡住界面 。实现思路:第一次收到登录的时候,缓存当前UIN,后面有再收到登录的消息时,检查和之前的uin是不是一样,不一样,提示用户手动重新启动游戏。直接弹出个AlertView,上面不放任何按钮,用户就没法操作了。解决方案二:跳出提示框,点击确定就退出游戏(推荐使用abort 函数和assert宏,自行百度关键字“ios 退出程序”)。8. 服务器端验证SESSIONID 可以参考《91移动开发平台服务端与应用服务端接口规范 1.01.pdf》。9. 游戏初始化界面中未登陆就显示了SDK浮动工具条,则玩家可以在此界面上通过SDK浮动工具条直接进入91社区并进行登陆,这时候客户端代码需要在关闭91社区界面的回调中加入判断玩家登陆情况的代码,避免重复登陆。
2.png (30.23 KB, 下载次数: 28)
11:18 上传
(截图自服务器端文档)
四.SDK支付(服务器端文档内有支付流程图,服务器端IP:<font color="#.56.21.*)
1.png (130.94 KB, 下载次数: 63)
11:18 上传
(截图自服务器端文档)1.四种支付方式,你只能选用一种,不允许混用。A、代币支付(厂商须有支付服务器,不须在DEV后台配置虚拟商品信息,但必须在DEV后台支付配置中配置代币信息)B、异步支付(厂商须有支付服务器,不须在DEV后台配置虚拟商品信息)C、同步支付(对厂商服务器无要求,,不须在DEV后台配置虚拟商品信息)D、虚拟商店支付(对厂商服务器无要求,须在DEV后台配置虚拟商品信息)(近期要求:不建议使用虚拟商店)2. 服务器端接收支付通知需要参考《91移动开发平台服务端与应用服务端接口规范 1.00.pdf》。在SDK包内我们也提供了C#、JAVA、PHP三种语言的服务器端DEMO源码参考。3.关于充值和消费的说明:RMB换91豆是充值行为,这个是玩家与91公司的业务,是没有支付通知的。91豆、RMB换代币或道具是支付行为,这个才与厂商有业务关联,支付行为才会产生支付通知。通知模式只要打开支付页面就会提交一个订单,这个过程你可以想象成:你去淘宝买东西, 你在付款前提交了订单,你可以马上付款,也可以过几天再付款。 客户端就是店家,淘宝是服务器端。店家不知道你什么时候会付款,只有等你付款了,淘宝才通知店家发货。4.客户端应该做漏单处理,避免由于玩家的客户端由于网络问题造成的支付成功,但未获取到代币、道具情况的发生。建议漏单检查时机在玩家登陆成功后进行漏单检查,这样玩家重新登陆游戏即可获得漏发的代币、道具。5.获取测试豆:测试账号就是91账号,注册个91账号,记住密码,使用该91账号在手机上登陆过任何一款91游戏均可(SDK包DEMO也行),然后到DEV后台你的游戏下添加该账号并分配测试豆,游戏客户端的APPID要和该游戏后台的APPID一致,客户端设置为调试模式(ndSetDebugMode),用此测试账号登陆游戏客户端就可以使用测试豆消费。
b.png (180.03 KB, 下载次数: 14)
11:51 上传
6.“支付通知地址” 必须是80端口。非80端口的,可以搞代理接收了信息转发给你们的服务器。80端口被占用的可以做二级域名算是个新网站,80端口就有了。C++的服务器可以另外搞个WEB站点做内部通讯以此来接收HTTP的GET请求。7. 异步支付中的服务器端NOTE字段只有20个字符,官方建议是不使用这个字段,应该将数据存在服务器本地数据库中,通过订单号取相关数据。SDK开发人员不会对关于NOTE的问题做任何解释,请按官方建议操作。有部分开发者将NOTE字段的信息转嫁到订单号的内容中,注意不要订单号不能使用特殊字符。8.四种支付方式说明:A. 代币支付:适用于网络游戏中玩家用91豆换购代币,并无换购限制的游戏。须在DEV后台配置支付相关配置的信息。“支付相关配置”页面的息必须全部填写。
a.png (117.25 KB, 下载次数: 10)
11:51 上传
代币支付的支付结果不是看客户端回调,支付结果将由通过HTTP GET方式以UTF8格式通知到您配置“支付通知地址”。需要做二次安全验证:B.异步支付:适用于网络游戏中玩家用91豆换购道具,可以有最低消费限制。如:游戏限制玩家最低消费是10个91豆换购100个元宝,那么游戏中就设立一个道具叫“100元宝”使用异步支付则玩家购买时有10个91豆就支付成功,没有足够的91豆就进SDK的充值页面,充值如果足额则支付成功,不足额就支付失败。异步支付须在DEV后台的支付相关配置中设置“支付通知地址”、“预警联系手机”、“预警联系邮箱”。异步支付的支付结果不是看客户端回调,支付结果将由通过HTTP GET方式以UTF8格式通知到您配置“支付通知地址”。需要做二次安全验证:这里还特别告知一个容易被忽视的服务器端安全性问题:黑客破解了游戏客户端,游戏中购买道具的时候金额为1元,却把商品ID被篡改为1000元的商品ID,账户余额大于1元就可以支付成功,此时你的服务器端会收到被篡改的购买信息的请求通知,如果服务器端没有做对金额、商品ID、数量等参数做是否相符的判断就发放了道具,后果你明白的。C.同步支付:参照《SDK客户端文档》,必须做好漏单处理。单机游戏如果使用同步支付方式,需要在提交QA测试前联系技术支持,将漏单的代码发给技术支持确认,并告知漏单检测时机。技术支持将在QA处备案,这样就可以保证该项测试顺利通过。D. 虚拟商店支付:--------虚拟商店支付说明---开始------最简单的实现方式
把你的 代币 变成&&道具(如:100金币包、500金币包),玩家成功购买到金币包后, 客户端就使用SDK的API使用已购买的虚拟商品,把服务器上的数据消掉(如果不消掉,每次查询都会存在数据,你就亏了),然后在你的客户端加对应数量的金币。&&玩家可以用这些金币进行购买道具了,这属于客户端的内部逻辑,聪明的你应该知道如何操作。
最简单的实现方式代码举例
首先,进入 DEV 后台, 添加好商品分类、具体的商品信息。
使用SDK自带UI的商店,首先进入商店 ndEnterVirtualShop(确保用户登陆状态,APPID是你的游戏),这样商品列表就显示出来了。
例如,玩家购买了3个100金币包(消费类型),A.(iOS)在ndEnterVirtualShop监听里
B.(Android)在调用ndEnterVirtualShop后(用OnPlatformBackground监听退出虚拟商店界面 -- SDK参考手册CTRL+F)后
调用ndGetUserProductList查询玩家买到什么,在ndGetUserProductList的回调里调用ndUseHolding使用虚拟物品,把这3个金币包都使用了, 在ndUseHolding的回调成功的IF里面把3个金币包的数据加到游戏里。这样就保证了服务器上道具被使用了,查询不再出现,玩家不能重复获取,手机本地游戏有正确的数据,不需要长时间联网的需求了。最后,记得在玩家登陆成功后查询一次玩家的物品列表(ndGetUserProductList),发现有道具就用掉(ndUseHolding)并给玩家加道具,这就是虚拟商店的漏单处理。
虚拟商店的小贴士
1.使用ndEnterVirtualShop,用的是SDK的UI。如果想自己做商店UI,用ndBuyCommodity。&&
2.虚拟商店也要做漏单处理(非常重要):玩家登陆成功后查询一下玩家已购买道具列表(ndGetUserProductList),查到了就用掉(ndUseHolding),这样来充当漏单处理。
3.虚拟商店道具补发经查证后,联系负责该游戏的91运营人员,由91运营人员(QQ:)在服务器端加入新的购买通知,进行道具补发。
虚拟商店中ndGetUserProductList回调中的一些说明
t.getTotalCount()&&获取商品种类数量,比如 玩家买了2种物品:苹果3个,梨子4个。 那么这个值是2.
t.getList().get(i).getProductAuthInfo().getRemainCnt()&&获取某种商品个数, 如 I =0, 就获得苹果的数量 = 3, I=1时,就获得梨子数量4
ndUseHolding(ProductID, useCnt, extParam, ctx, callback)&&使用已购买商品的API& &,这里PRODUCTID就是商品ID,&&USECNT 就是数量,比如:你可以一次性用掉苹果3个给你的客户端加道具,要先调用ndUseHolding把3个苹果用掉,在ndUseHolding回调里判断使用成功了才给客户端+道具。
验证虚拟商店接入是否成功
1.用91豆完成一次虚拟商店的购买过程。
2.进DEV后台-销售清单中参看销售记录。
3.产品清单中的商品的剩余数量为0。(注意:消费型的产品才这样子显示,非消费型的商品是没授权总数和剩余总数的,故2个都会显示“不限”)
4.代码中做了虚拟商店的漏单处理(玩家登陆成功后查询一下玩家已购买道具列表(ndGetUserProductList),查到了就用掉(ndUseHolding))。
5.如果以上你都做到了,恭喜你,你成功了。--------虚拟商店支付说明---结束------
9.DEV后台销售清单或支付测试订单中 “通知失败”如何解决?答:进入DEV后台-&销售清单,在销售记录列表中,点击三角尖,会显示更多信息,把里面的URL复制出来, 粘贴到IE地址栏并敲击, 看你的服务器报什么错误。
1.png (152.02 KB, 下载次数: 12)
16:58 上传
常见问题:请面向API编程,以文档为主要参照。如果你是用测试豆进行支付测试的到DEV后台看测试环境中的通知结果
4.jpg (22.6 KB, 下载次数: 9)
10:55 上传
开发者服务器问题 以及 返回值问题 -- 例如:{&ErrorCode&:&1&,&ErrorDesc&:&成功&}, 注意引号,注意大小写,UTF8格式,返回值中勿带HTML标签,如果是PHP服务端的注意UTF8格式,除代码输出外,自己的.PHP文件格式也要注意,否则浏览器看似结果正常,但是实际上输出了浏览器无法显示的许多特殊符号。出现这个问题的试试把文件另存为无BOM格式的UTF8格式或是ANSI格式,原因看:。
5.jpg (77.46 KB, 下载次数: 10)
10:55 上传
排除以上问题,如果您的异步支付错误为HTTP408超时错误,需要在5秒内返回结果。先检查服务器的DNS是否有问题,然后继续往后看。
6.jpg (21.08 KB, 下载次数: 12)
10:55 上传
sending 1ms,说明开发商的web服务器已经和91服务器建立了连接了。watting了12.71S,这期间是开发商的程序在处理的耗时(一种可能是服务器实在太烂,CPU占100%,另一种可能是开发商在接收通知的时候去处理一大堆和订单无关的业务)。第二种可能性居多,最常见的情况就是开发商收到通知时,去发给用户道具,然后又去做七做八。 正确的逻辑应该是开发商收到91通知,只把自己的订单库状态改为成功。然后用另外的控制台程序去给用户发道具。
10.服务器通知失败后,还会通知几次到开发者服务器?
答:91服务器通知失败,第一天:每2分钟通知一遍,共5遍;第2天开始每天通知1次,连续通知5天;之后不再通知。共计12次。11. 91SDK域名地址:
五.SDK暂停页和退出页1.API:ndPause(暂停页)、 ndExit(退出页)2. iOS只有暂停页,Android暂停页退出页均有。暂停页主要作用是引导玩家进游戏的18183论坛专区,增加用户粘性,退出页主要起类似互推作用。3. 游戏中按HOME键(或苹果键)回到手机桌面,再点游戏图标回到游戏,这个时候应出现暂停页。游戏中有暂停功能的也应显示暂停页。安卓的游戏点击返回键应出现退出页。4. ndPause不是让您的游戏必须实现暂停功能,而是在暂停的时候要显示暂停页,可参考DEMO源码。Android游戏如果在进91社区或支付界面再关闭它们后跳出暂停页(这是错的),原因是代码中误把游戏中显示SDK的UI当作进入后台了,可参照SDK包内DEMO的处理方式。为方便大家我把DEMO内的关键代码贴出来。& && &&&private boolean isAppForeground =& && &&&C
& && &&&@Override& && &&&protected void onStop() {& && && && && & // TODO Auto-generated method stub& && && && && & super.onStop();& && && && && & if(!isAppOnForeground()){//app进入后台& && && && && && && && &isAppForeground =& && && && && & }& && &&&}
& && &&&/**& && && &* 判断App是否在前台运行& && && &* @return& && && &*/& && &&&public boolean isAppOnForeground() {& && && && && & ActivityManager activityManager = (ActivityManager) getApplicationContext()& && && && && && && && && && &&&.getSystemService(Context.ACTIVITY_SERVICE);& && && && && & String packageName = getApplicationContext().getPackageName();& && && && && & List&RunningAppProcessInfo& appProcesses = activityManager.getRunningAppProcesses();& && && && && & if (appProcesses == null)& && && && && && && && && && && && && & for (RunningAppProcessInfo appProcess : appProcesses) {& && && && && && && && &if (appProcess.processName.equals(packageName)& && && && && && && && && && && && && & && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {& && && && && && && && && && &&&& && && && && && && && &}& && && && && & }& && && && && && && &&&}
& && &&&@Override& && &&&protected void onResume() {& && && && && & // TODO Auto-generated method stub& && && && && & super.onResume();& && && && && & if(!isAppForeground){//从后台切到前台,打开91SDK暂停页& && && && && && && && &NdCommplatform.getInstance().ndPause(new OnPauseCompleteListener(this){
& && && && && && && && && && &&&@Override& && && && && && && && && && &&&public void onComplete() {& && && && && && && && && && && && && & // TODO Auto-generated method stub& && && && && && && && && && && && && & Toast.makeText(GameActivity.this, &退出暂停页&, Toast.LENGTH_LONG).show();& && && && && && && && && && &&&}& && && && && && && && &});& && && && && && && && &isAppForeground =& && && && && & }& && &&&}
& && &&&@Override& && &&&public boolean onKeyDown(int keyCode, KeyEvent event) {& && && && && & // TODO Auto-generated method stub& && && && && & if(keyCode == KeyEvent.KEYCODE_BACK){& && && && && && && && &NdCommplatform.getInstance().ndExit(& && && && && && && && && && && && && & new OnExitCompleteListener(this){& && && && && && && && && && && && && && && && &@Override& && && && && && && && && && && && && && && && &public void onComplete() {& && && && && && && && && && && && && && && && && && &&&// TODO Auto-generated method stub& && && && && && && && && && && && && && && && && && &&&Toast.makeText(ctx, &退出DEMO&, Toast.LENGTH_LONG).show();& && && && && && && && && && && && && && && && && && &&&finish();& && && && && && && && && && && && && && && && &}
& && && && && && && && &});& && && && && && && && && && && && && & }& && && && && & return super.onKeyDown(keyCode, event);& && &&&}
6. 如您的游戏无法在后台运行且无法实现暂停页的展示,请在提交QA测试的邮件正文和更新日志中的特殊要求中说明情况,避免测试返工。
六.SDK工具条1.API:&&ndToolBar(Android)/ NdShowToolBar(iOS)&&隐藏工具条的API详见SDK客户端文档2.游戏的主界面中必须显示SDK浮动工具条,但是显示时不应该影响用户体验,如强制教学、副本、战斗场景、信息展示界面等可以不显示工具条。3.工具条初始化位置有6种,参数请看文档。您可以选一个最合适的位置显示。工具条可以被玩家拖动。4.Android游戏,点击工具条中的“论坛”崩溃是由于游戏项目中缺少“Android-support-v4.jar”。5.点击工具条中的论坛,显示的论坛界面如果不是18183专区,请找18183对外接口人联系配置论坛地址,联系方式见《》。6.建议在游戏进入主界面后再显示SDK浮动工具条,如果要在主界面之前显示的,由于玩家可以在主界面之前不通过登陆按钮登陆,而是通过SDK浮动工具条直接进入91社区并进行登陆,可能造成重复登陆。此时客户端代码需要在关闭91社区界面的回调中加入判断玩家登陆情况的代码。7.工具条效果图:
1.png (58.15 KB, 下载次数: 13)
14:09 上传
2.png (61.03 KB, 下载次数: 12)
14:09 上传
FAQ.一些解决方案1.游戏服务器运行的是旧版本,而提交91QA的客户端必须连接最新的服务器版本才可以正常测试,可以参照如下解决方案:A.游戏服务器端通过客户端的版本号判断,V1.0的客户端连接A服务器,V2.0的客户端连接B服务器。B.A服务器正在运营,B服务器是测试服,厂商提供HOST文件,91QA把这个HOST文件放入手机中,就可以在不换包的情况下连接到B服务器上。C.客户端代码中搞个后门代码,判断手机中游戏目录下是否有某个文件,读取该文件中的地址,如果有则连接该地址的服务器的,把该文件提供给91QA。D.客户端的选择服务器界面变更下,提供一个测试服,91QA点击可以进入测试服务器测试。E.服务器端通过91QA提供的IP地址或者用户ID(UIN)判断,引导QA的账号进入的是测试服务器。
点这里&&&&
我测试的时候发现一个问题:
在网络不通的情况下,调用sdk初始化方法:
[[NdComPlatform defaultPlatform] NdInit:cfg];
界面上有显示提示框:网络发生错误,关闭提示框后,将一直停留在91初始化窗口,无论接下来网络是否畅通
问题是,我无法得到这个网络错误的通知,也就无法提醒用户重新登录,用户只有进入后台将程序杀死,才能继续登录游戏
有没有什么办法解决?
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
android请问u3d调用的退出页demo在那?
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
本帖最后由 1375288 于
13:50 编辑
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
你好,麻烦问下,我们是一家游戏公司,现在在接入SDK的时候,出现了几个问题:启动游戏后,进入游戏登录界面就崩
设备:iPhone 4S(6.1.2)、touch 5 (6.0.1)、ipad mini (6.1.2)
这是咱91平台给出的测试反馈
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
问一个关于旋屏的问题,设置
cfg.autoRotate = YES;& &//这里设置是否要自动转屏
91的登录窗口可以自动旋屏了,但是,弹出来的输入键盘无法自动旋转啊,请问这怎么解决?
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
请问使用ANE接口调用暂停页后:
NdComPlatform.getInstance().NdPause();
怎么监听 暂停页 关闭的消息?
指尖每日首次回帖可以赚5金币()收起回复展开回复
点这里&&&&
动作手游不删档测试送好礼!
大尺度卖萌勋章
在论坛任意版块发帖晒出自己的萌照通过审核即可获得
长期对论坛的繁荣而不断努力,精华帖40篇以上。
限量十二星座勋章:处女座
花费1500论坛金币在勋章商店中购买

我要回帖

更多关于 华为支付sdk 的文章

 

随机推荐