Adobe Air For Android 接入Amazon Iap 流程整理
Amazon Iap即Amazon的内支付。可实现通过调用amazon的支付接口来进行内购。
而amazon本身提供了iap ANE 包括GameCircle,amazon Ads。GameCircle类似于IOS的GameCenter。后面的是广告。这两个由于项目没用到,也没接入。主要是接入IAP
就Amazon而言,如果要上Amazon Appstore的话,并且没有用到支付,那么也可以不用接入,但是如果用到了支付,那就一定要接入他的支付SDK了。下图是我咨询的结果 :
然而,纵然Amazon是一个大平台,而且还主动提供了ANE这不是很爽歪歪的事儿吗?然而值得一提的是,Amazon的咨询服务以及文档确实不敢恭维。没有在线咨询,有问题只能通过邮件,或者FAQ。
闲话不多说了,下面开始记录接入的具体过程:
注册账号什么的就不多说了,www.amazon.com
注册好开发者账号之后 就是下载ANE
https://developer.amazon.com/public/resources/development-tools/sdk 这里面有个列表里面包含了各种SDK
以及ane接入的参考文档
下载的ANE 压缩包里面包含了V1 和V2版本。文件夹是独立开的。使用最新V2即可。但是V2版本完全没有完整项目Demo。所以就得到上面提供的参考文档里面去参考参考。
当然也很简单,直接复制即可
AmazonIapV2.getUserData();
即获取到用户数据,因为要使用iap你得先下载Amazon Appstore,所以这个用户数据就是你的appstore里面的用户数据。获取之后会有一个回调,一些东西可能会用到,比如做数据校验什么的。
var request:SkuInput = new SkuInput(); request.sku = "MAS-123456"; var requestOutput:RequestOutput = AmazonIapV2.purchase(request);
上面的代码就是支付相关的东西,sku就和其他平台的计费点ID一样,这个是在创建项目之后-添加商品信息时会创建,自定义。
同样有返回。
AmazonIapV2.getProductData(request);
获取商品信息,这个不用多说
AmazonIapV2.getPurchaseUpdates(request);
说说这个,这个的作用就是,如果我们做的单机游戏,那么如果我们有一项功能是玩家购买之后就能够永久无限红心。当然我们的数据可能是保存在本地的,但是如果玩家换了手机或者其他什么的导致本地数据丢失。那么我们就需要用到这个接口了,这样就相当于Amazon用我们在appstore里面的账号在Amazon的服务里端存储了我们所购买的这个权限,一般这个就是Entitlement(即授权类商品,一次购买享受终生)。这样的话调用这个接口会返回一串数据,可以根据提供的商品ID进行筛选。从而得到当前玩家是否购买过这个权限。很实用 不是。
AmazonIapV2.notifyFulfillment(request);
这个没怎么用,即通知Amazon支付已经完成。可能情况是对于购买功能需要服务器参与的项目会用到。
其实我们会发现这个版本的ANE没有初始化接口,是的。确实没对外开放,而是在ExtensionContext被创建的时候就自动执行了初始化。所以按照上面的一步一步的做完之后,接着就是设置xx-app.xml.
不过这里的文档里面并没有写xml的相关配置,如果我们以为不添加的话,到最后支付能成功,但是绝对没有回调,如果我们复制v1版本的权限,到最后肯定会报错。
所以我们只能跑到andorid接入文档里面去找如何配置。如下 权限就只添加INTERNET即可
<application> <receiver android:name="com.amazon.device.iap.ResponseReceiver" > <intent-filter> <action android:name="com.amazon.inapp.purchasing.NOTIFY" android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY" /> </intent-filter> </receiver> </application>
完成上面这些之后,就可以进行测试了。V2版本提供的是AppTester,和V1版本有区别。我们先要去下载一个Amazon Appstore,然后去下载AppTester。
安装好之后,咱们就去创建项目.
测试的时候可以只填写基本信息即可,如果把所有带星号的填写完就会有一个绿色的勾勾。
Sku就是我们计费点的ID,需要用。后面描述 图像什么的 都是在购买界面会看到
创建好商品之后可以点击下载JSON数据文件,这个用于沙盒测试,正式测试或者提交版本审核的时候 一定要将商品提交一下,这个和应用是分开的。将下载好的amazon.sdktester.json直接复制到安卓设备SD卡根目录即可。
然后就可以执行支付测试啦。
调用支付接口不出意外 就会弹出这样的窗口,然后点击GetItem 会进行购买 成功之后关闭界面会触发购买的事件。
接着打开AppTester 进入 In-App Purchasing API 找到 Manage Transactions 点开之后 如果看到这样一串数据那么证明支付成功了。
沙盒测试已经成功了,接下来就是做一系列的其他事儿了。完成没完成的一些信息填写,上传APK之类的。
做完之后,可以对游戏进行 动态应用测试 动态测试 和 google play的测试基本类似,即发布一个beta版本然后邀请amazon用户进行测试。填写邀请者邮箱之后,amazon会发送一封邮件给测试者,此过程耐心等待,估计收到邮件的时间会有点长
下图即收到的邮件,有很多种语言 如 日语,德语,法语之类的 就是没有汉语!!呵呵!
上面的网址 任意选择一个就好,以.com为例进入后如下所示
点击GetApp 那么这个App 就同步到账号的云端去了
然后就可以到appstore里面的my apps 去下载这个app进行测试即可。
然而在测试的时候,发现一个问题是,调用支付接口,始终不能成功调出支付界面,但是有加载的进度,加载进度完成之后,就没反应了。貌似也有网友遇到这个情况,后来索性直接提交审核,并且审核还比较快。基本就几个小时,估计时差原因,可能就一天时间。最后就通过啦,可以在商店里面搜索到了。
PS:值得注意的是。
如果你的账号是开发者账号那么你完全可以在商店里面搜到。
如果账号所注册的地区包含在你App所售卖的地区也可以搜索到
但是账号所注册的地区未包含在你APP所售卖的地区,那么就搜索不到的。比如中国地区。
下图即上架之后能调用出来的支付界面,和沙箱测试的是不一样的。同时不同手机貌似也有不同的UI差别
不错,不错,看看了!
研究研究,学习学习。
看看您的博客!
如果有一天,我潇洒死去,请记得,我来过这里!
Topaz is a nice idea, but keep in mind, it will need a protective setting, so it doesn’t cleave when I would recommend reading up on a few different stones and their suitability in regards to daily wear take into account hardness AND toughness Here is a website I frequent, and their information in mystic If she likes mood rings, perhaps consider Alexandrite actually changes colors entirely depending on the light it is exposed I’m not sure what your budget is, but considering how expensive natural stones are, I would consider lab Lab grown alexandrites are chemically identical to a mined stone, but can be bought for much cheaper, in larger sizes, and more vivid and pure color They typically changes from bluish green in natural light, to purple and raspberry red in incandescent and candle light, more info here Plus it is very suitable for every day Here is a reliable site to purchase
一直没法调起支付页面,楼主知道得怎么解决么?谢谢!