亚马逊 Amazon iap v2.0 加入eclipse流程

引用

官方说明 (外部配置)
官方说明 (内部配置)

具体步骤:

注意事项:

  • 允许通过 ADB 和 logcat 登录的 Android 开发环境
  • 支持 SDK 版本 10 或更高版本的 Android 设备
  • 实施 IAP v2.0 和/或移动联营 API 的 Android 应用
  • 如果之前安装了适用于 IAP v1.0 的 SDK Tester,需卸载 SDK Tester。
    • 测试原1.0 sdk test不删除也不会影响测试, 但官方建议删除, 还是最好删除掉
  • Amazon Appstore 中为您的应用创建了一个或多个可购买项目(可选但推荐)。
    • 在 app的 “应用程序内商品” 中创建支付商品

安装 sdk tester

  • 需要android 5.0+ 系统
  • 下载地址 : app tester
  • 在 “应用程序内商品” 中 可以找到下载 JSON配置文件字样
  • 将json文件命名为 amazon.sdktester.json 并保存到手机用户存储根目录 /mnt/sdcard/
  • 或者通过命令行来实现
    • adb push ./amazon.sdktester.json /mnt/sdcard/

应用内配置

  • 在AndroidManifest.xml中配置
    • 加入代码 (如果有旧iap配置删掉)
<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>
  • 需要用到的服务包括 PurchasingService 和 PurchasingListener
  • 简单来实现可以直接绑定主类实现接口 implements PurchasingListener
    • api命名看字面很模糊, 直接看对应的api就看清晰了, 其中onPurchaseResponse就是对应每次购买的响应成功与失败结果
onUserDataResponse() 对应 getUserData() 的响应
onProductDataResponse() 对应 getProductData() 的响应
onPurchaseUpdatesResponse() 对应 getPurchaseUpdates() 的响应
onPurchaseResponse() 对应 purchase() 的响应

初始化

第一个参数是监控对象类, 第二个是反馈函数的类, 绑定了PurchasingListener, 就可以这样写

PurchasingService.registerListener(this, this);

将所有sku放到一个集合, 初始化检测所有购买项是否合法

final Set<String> productSkus = new HashSet<String>();
for (final KAmazonIAB mySku : KAmazonIAB.values()) {
    productSkus.add(mySku.getSku());
}
PurchasingService.getProductData(productSkus);

//在onProductDataResponse中响应
//其中 response.getUnavailableSkus() 为无效的购买项
//其中 response.getProductData() 为有效购买项
//可以在这里统计哪些可以购买, 在购买点击时进行第一部的判断

获取用户信息

一般放在resume中

PurchasingService.getUserData();

//在onUserDataResponse会得到响应
//用户id
//response.getUserData().getUserId()
//商店所在国家
//response.getUserData().getMarketplace()
PurchasingService.getPurchaseUpdates(false);

//初始化后进行检测, 如果用户已经购买, 则更新app的内付费购买状况, 不需要再购买

内付费购买点击按钮添加

PurchasingService.purchase(myIAB.getSku())

//响应 onPurchaseResponse()
//注意这里只有SUCCESSFUL才可以读到sku的key, ALREADY_PURCHASED不可以, 所以如果想已购买也支持, 请自己保存skuKey在购买生命周期过程中存放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值