在中国大陆调试Android In-app-billing

原文链接:http://zengrong.net/post/1801.htm


本站文章除注明转载外,均为本站原创或者翻译。

  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本文标题:在中国大陆调试Android In-app-billing
  • 本文链接:http://zengrong.net/post/1801.htm


    2013-03-01更新:加入简单解决方案。


    历尽艰难险阻终于在中国大陆调试Google Play In-app Billing成功,过程记录如下,方便后来之人。

    简单解决方案

    1. 找一台带有Google Play的手机,不必ROOT;
    2. 找一个米国VPN,在手机上拨通;
    3. 在手机上,删除Google Play的缓存,同时卸载Google Play的更新。
      Google Play使用普通方法是不能被卸载的,因此可以放心的卸载Google Play的更新;
    4. 重启一次手机,在手机上拨通VPN;
    5. 打开Google Play,如果能够看到付费应用,就说明手机已经支持支付了;
    6. 登录Google Wallet,绑定一张双币种信用卡(亲测招行和民生银行均可用),测试支付。

    心得:

    经过多台手机的测试,可以确定,手机不必Root,不必安装Market Enable,也不必安装米国手机卡,就可以实现Google Play支付。
    我猜测,Google Play检测手机是否可以支付,是通过网络位置判定的。但是由于缓存的原因,临时改用米国VPN是不管用的,必须要清除缓存和Google Play的更新。
    Google Play看到付费应用之后,理论上就可以进行支付了。如果测试还有问题,只需要稍等片刻,或者多测试几次,或者重启手机再测试。
    一定要保证,测试的过程中,你的手机是全程VPN的。
    其实,直接用路由器做梯子,是最保险的。

    如果上面的简单方案不管用,还是尝试下面的复杂解决方案把。

    复杂解决方案

    一、错误描述

    Android的文档写得相当好,根据下面两篇教程,理应顺利通过调试。

    Error checking for billing v3 support. (response: 3:Billing Unavailable)

    二、原因

    这个异常对应的是 BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE 错误,Google对它的定义是:

    Billing API version is not supported for the type requested

    详见这里:In-app Billing Reference (IAB Version 3)

    这个含义其实是非常模糊的,我用标准和专业的中文翻译一下,它应该是这个意思:

    老子就是不支持你在天朝使用,元芳,你能怎么着?

    血泪教训啊,为了翻译上面那句话,秒秒钟几十亿上下的我的track遍及大江南北,城墙内外……

    三、解决条件

    Android文档中提供的什么账户啊、产品啊、Developer Console之类的我就不说了,中文不好的就去看英文,英文好的就去看英文。我要说的内容绝不违反党的政策,和12306、GitHub以及城墙都无关。我只是欺骗了万恶的美帝。

    Android中的In-app billing其实是调用Google Play实现的。因此要解决上面的问题,首先要让Google Play支持支付。

    默认的情况下,在Google Play Store中,我们只能看到免费的App,且无法搜索到收费App。要完成这一步,需要以下条件:

    1. Root过的Android手机一枚;
    2. 跨墙工具一套(推荐美帝VPN);
    3. Market Enabler或者Market Unlocker
    4. 双币种信用卡一张(亲测招行VISA可用);
    5. 美帝通信地址和邮编(如果木有亲戚朋友,就随便找个大学地址);
    6. Google账户一个。

    四、解决流程

    还是先说句废话:开机有风险,用户须谨慎

    1. Google帐号绑定信用卡
      PC拨上美帝VPN,进入 https://wallet.google.com ,账户选择美国,地址邮编填写上面准备好的,然后绑定一张双币种信用卡。如果绑定成功,你应该会收到银行短信说有$1的交易。不要着急,这个交易只是预授权费用,是为了检测你的卡是否正常,不用还款的。详见:Authorizations
    2. 修改运营商
      运行上面准备的 Market Unlocker,按照界面提示开启Enable UnlockerAuto Unlock 选项。这个操作将运营商改成 Verizon。
    3. 取消定位服务(我不确定是否必须)
      在Android系统设置中把 使用wifi定位用定位数据改善google服务 关闭。
    4. 清除Google Play Store的缓存和更新
      在Android的App管理中,清除Google Play Stroe的程序数据和缓存。Android会有一个提醒,不必管它,哪些东西都会回来的。如果Google Play更新过,也卸载更新。Google Play Store一般是保存在Rom中的,所以不会被卸载,只能卸载更新。
    5. 完成
      在Android设备中拨上美帝VPN,重新打开Google Play Store。如果你能在首页看到收费应用,就说明已经成功了。

    五、参考

    以下是参考资料中有价值的一小部分,大部分资料都需要跨墙:

    这两篇可能用得上,一并放这里。第一篇也是字字血泪啊!!

    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值