文档章节

soomla整合谷歌支付

zxc1991
 zxc1991
发布于 2014/04/19 11:16
字数 468
阅读 220
收藏 0

谷歌官方支付的程序略显复杂,开源项目soomla很好的封装了谷歌的支付,使得在配置完成之后,一行代码就可以完成购买。

建议在整合支付之前阅读github上soomla下的说明,以及google play in app billing的说明文档。

环境简介:eclipse windows 

实际整合流程:

  1. libs下添加square-otto-1.3.2.jar 用于处理消息通知的jar包

  2. 添加android-store/SoomlaAndroidStore/src下的内容复制到项目中

  3. 添加com.android.vending.billing(必须这么命名)包,并在包下添加IInAppBillingService.aidl 

  4. 在AndroidManifest文件中添加权限以及activity

  5. <uses-permission android:name="com.android.vending.BILLING" />
    <activity android:name="platformgoogle.soomla.store.StoreController$IabActivity"
                android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

  6. AndroidManifest中application标签中的name属性需要配置为SoomlaApp所在路径如:com.soomla.store.SoomlaApp

  7. 接下来就要编写具体购买物品的实现了,具体可参照Soomla项目中android-store / SoomlaAndroidExample / src / com / soomla / example

    1.  继承IStoreAssets类,实现其中的方法,关键点是VirtualCurrencyPack对象的实例

      public static final VirtualCurrencyPack TENMUFF_PACK = new VirtualCurrencyPack( "10 Muffins", // 名称
          "Test refund of an item", // 描述
          "muffins_10", // 谷歌市场中申请的物品的id
          10,// 购买数量
          MUFFIN_CURRENCY_ITEM_ID, // 虚拟货币id
          new PurchaseWithMarket(TENMUFF_PACK_PRODUCT_ID, 0.99));//物品id以及价格
    2. 参照android-store / SoomlaAndroidExample / src / com / soomla / example / ExampleEventHandler.java实现事件处理

    3. 在主activity的onCreate中初始化配置

      StoreController.getInstance().initialize(new YourStoreAssetsImplementation(), "谷歌市场的public key", "用于加密的字符串,可以是任意字符");
  8. 代码中整合购买

    VirtualCurrencyPack pack = StoreInfo.getCurrencyPacks().get(item);
        PurchaseWithMarket pw = (PurchaseWithMarket) pack.getPurchaseType();
        try {
          pw.buy();
        } catch (InsufficientFundsException e) {
        }

通过以上步骤差不多就集成了谷歌的支付

需要注意的是测试支付的时候测试账号需要开通google wallet服务,有时候可能还需要挂vpn,测试apk签名也必须与当初上传至google后台的apk相同。



© 著作权归作者所有

下一篇: 开场白
zxc1991
粉丝 0
博文 5
码字总数 2232
作品 0
海淀
程序员
私信 提问
谷歌商务主管:移动支付是场持久战

  【IT168 评论】10月27日消息,据国外媒体报道,谷歌最近的一项购物者调查显示,今年的假日购物季用手机支付购物的消费者比例可能将超过40%。在购物季即将到来之际,谷歌商务主管斯里德哈...

网易科技
2015/10/28
0
0
移动支付三年内取代银行卡和 POS 机?

上海12月2日电(新华网 记者叶锋、高少华)“移动支付取代银行卡和POS终端,我觉得将在三年内完成。”日前在此间的一个论坛上,第三方支付领军企业之一汇付天下总裁周晔的观点,引起业内广泛...

oschina
2012/12/02
2.7K
27
再也不用输密码!Android M 能用指纹登陆应用

编者注:昨天在西安的源创会上小编已经看到一台华为下一款正在测试中附带指纹识别的手机,据说指纹识别速度比 iPhone 要快不少,期待。 很快,我们就无需再费尽心力地去记忆冗长的密码了。新...

oschina
2015/05/24
4K
14
摩托罗拉瘦身背后:互联网和硬件思维的碰撞

[导读]谷歌对摩托罗拉的一系列调整,让谷歌陷入了变卖资产的嫌疑。但这一系列不可思议的举动,实际上是作为互联网巨头的谷歌与摩托罗拉等传统手机制造商的思维模式的迥异。 自从谷歌今年5月正...

oschina
2012/12/21
2.4K
4
谷歌发布 Android Pay 移动支付框架

谷歌宣布公司正在研发一个名为安卓支付(Android Pay)的新型移动支付框架。负责Android、Chrome和谷歌应用程序的谷歌业务副总裁桑达尔·皮采(Sundar Pichai)在西班牙巴塞罗那召开的全球移...

oschina
2015/03/03
4K
10

没有更多内容

加载失败,请刷新页面

加载更多

高并发场景下的缓存有哪些常见的问题?

一、缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。 这就比较依赖缓存的过期和更新...

别打我会飞
14分钟前
1
0
List list = new ArrayList()为何父类引用指向子类对象(多态)

态:要有继承,方法的重写,父类引用指向子类对象 疑问一:父类引用指向子类对象 与指向父类对象 Animal cat = new Cat(); //向上转型。 父类引用指向子类对象,该引用不能再访问子类新增加的...

architect刘源源
15分钟前
0
0
分而治之-快速排序

快速排序的思想: 快速排序首先在数组中确定1个枢纽项(比如数组中的第一个元素),将大于该枢纽项的元素放到右侧,小于该枢纽项的元素放到左侧,这样枢纽项将数组划分成两部分。接着继续对划...

万山红遍
今天
4
0
Qt编写自定义控件9-导航按钮控件

前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2属...

飞扬青云
今天
3
0
Python开发工具:pyJasper

原文:https://www.oschina.net/p/pyjasper 前言 pyJasper是 JasperReports 网络服务器的 Python 客户端。 pyJasper 是一组 Python 基础工具,可以用来处理 JasperReports 报表 。因为 Jasper...

A_裙232550246
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部