BBOS实现程序内购(in-app purchase)
程序内购是现在比较主流的应用付费模式,前几天看到了一篇BB10实现IAP的文章后,我决定也写一篇BBOS的相关文章,就算用来增加自己的经验吧
BBOS要实现IAP,只要遵循以下几个步骤即可:
1、在项目里添加支持IAP功能库文件(Payment SDK)
首先需要下载BlackBerry® Java Payment SDK,现在的版本是v1.8,下载后解压到一个目录,我放在了Eclipse的plugins目录下。
然后在Package Explorer视图里右键单击项目名称并选择属性菜单,点击第3步的按钮后浏览到上图的位置,选择paymentapi.jar并打开。
添加完成出现上图第4步的内容后记得在Order and Export选项卡页面里勾选paymentapi.jar。
下一步展开第4步的列表,选择Javadoc项目,点击右边的编辑按钮,再浏览到图1的目录选择javadocs文件夹,并验证是否可用。
最后,全部点击确定按钮直到回到Eclipse主界面。
2、登录到Vendor Portal for BlackBerry World增加虚拟商品(Virtual Goods)
登录并进入Vendor Portal后在首页点击Manage Products,然后点击产品列表右侧第二个加号。
根据自己的需要填写虚拟商品的相关内容,最后点Save按钮保存,后面的代码需要用到Name和SKU两项的内容,最好把它们保存为常量备用。
创建好虚拟物品后还需要提交发布,根据网站提示做就可以了,全部完成后就可以开始编写代码调用虚拟商品了。
3、在程序中增加购买虚拟物品的代码
布局代码略过,直接贴上关键代码吧。
public class AboutScreen extends PopupScreen implements redflowerResource { private PurchaseHistoryListingListener purchaseHistoryListingListener; private PaymentEngine engine=PaymentEngine.getInstance(); public AboutScreen() { ButtonField btnDonateTheAuthor=new ButtonField(getResString(MENU_BBWORLD_DONATE_THE_AUTHOR), ButtonField.NEVER_DIRTY | ButtonField.CONSUME_CLICK); btnDonateTheAuthor.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { if(engine!=null) { //check purchase history purchaseHistoryListingListener=new PurchaseHistoryListingListener() { public void error(String message, int errorCode) {Functions.errorDialog(message);} public void success(Purchase[] goods) { if(goods.length!=0) { String temp=getResString(DIALOG_TIPS_PURCHASED_LIST); for(int i=0; i
4、登录到Vendor Portal for BlackBerry World发布更新后的程序,并测试购买功能
首先创建一个沙盒测试账号。沙盒测试账号就是BBID的账号,因为我在模拟器上测试购买不成功然后改用真机了,所以这个测试账号就是手机绑定的BBID,不能填错了,否则会真的扣费的,切记!
然后按照正常步骤提交已经内置了IAP功能的cod文件,但是不用发布到BlackBerry World,保留Draft状态即可,就叫做测试版本吧。
★这里有一个小小的提示:因为IAP功能也需要多次测试才能最终发布,而每次发布测试版本都需要10分钟到n小时的等待同步时间,为了防止下载到错误版本的测试文件,所以最好每次提交cod的时候都更改一下程序版本号,这样就能有一个明确的提示信息告诉你下载的是否是最新版本的测试文件了。
★另一个小小的提示:在开始测试IAP功能之前,要先找到并记下你的程序的ID,以后每次更新测试版本的时候都要用到它。
从手机上打开BlackBerry World(这个手机必须绑定了BBID,而且这个BBID要和沙盒测试里的账号相同),先随便按一个按键激活搜索框(背景变暗),然后按住alt键再依次按tst,弹出“内容ID或SKU”的输入框,输入你的程序的ID并按确定按钮。
通过ID搜索到的程序无论你原来是否安装过,都显示下载按钮,而不会显示“删除”。
还要核对一下版本号,不要下载到过期的测试版本。我最后一次上传的版本就是0.1.4,核对没问题了就开始下载吧。另,如果提交的虚拟商品已经上架的话,下边就会出现“*包含要出售的商品*”字样。
下载安装完成后,就可以测试购买了,希望你们也一切顺利!~
详细内容请参考下列内容:
--------Payment Service SDK
--------Payment Service
BBOS实现程序内购(in-app purchase)相关推荐
- iOS 内购(In-App Purchase)详解
iOS 内购(In-App Purchase)详解 概述 IAP 全称:In-App Purchase,是指苹果 App Store 的应用内购买,是苹果为 App 内购买虚拟商品或服务提供的一套交易 ...
- TN2413: 应用内购(In-App Purchase)常见问题
本文是 adat 项目的第二篇.主要内容是对 iOS 和 macOS 应用内购相关的释疑,包括各种问题出现的原因.如何解决以及最佳实践等.作者还结合亲身经历,给开发者.运营者提供了一些实用建议. 内容 ...
- iOS快速上手应用内购(IAP)附Demo
前言:最近项目中接触到内购,本文主要介绍如何开发应用内购(In App Purchase),有一些是根据实际需求做的考虑,有不同的见解欢迎留言指教~本文demo:https://github.com/ ...
- iOS开发 - 内购沙盒测试正常,因产品返回数为0被苹果审核多次拒绝 (In-app purchase products return 0)
最近给app增加内购移除广告功能,刚开始还比较顺利,把网上找到的内购代码,简单修改加入到app内,基本能用,测试完成后,提交审核.第一次提交,有点问题被拒,根据具体问题进行改正后,再提交,审核就通过了 ...
- iOS内购—— In-App Purchase(消耗型)
iOS应用如果涉及到支付功能,分为两类:第三方支付和苹果内购.那么什么情况下选择使用第三方支付,又在什么情况下选择苹果内购呢?让我们先来简单了解一下: Understanding What You C ...
- 解决某APP游戏内购
对某APP内的道具购买进行破解 学习笔记三:对一款存在道具.关卡内购的APP进行破解使其道具.关卡购买免费化 一.将该未进行处理的APP通过模拟器安装使用 通过安装后的使用(购买其中的道具)发现该AP ...
- 苹果app商品定价_iOS 开发_2017苹果内购价格表
[作者前言]:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进! 1.应用场景: 使用苹果内购的APP/游戏 2.实现目标: 了解 ...
- 苹果内购小结 - iOS
此篇针对 iOS 支付进行一次小结,很久没碰这块了,有些方法 Apple 官方也进行了优化,故也将随之进行更新. 首先,code 部分将分为两部分,一部分在 appdelegate 中,另一部分单独封 ...
- cocos creator 发布IOS版本(六)内购
cocos creator 版本3.3 参考文档: iOS 内购(In-App Purchase)总结 | 笑忘书店 iOS的应用内支付In-app purchase的开发 - 胡东东博客 App内购 ...
最新文章
- 上市公司财务报表分析——以中国联通为例
- C++对象模型8——构造函数和析构函数中对虚函数的调用、全局对象构造和析构、局部static数组的内存分配
- 数字图像处理中所用数学工具3---算术操作处理图像
- ubuntu用不了root用户:~$ su - root Password: su: Authentication failure怎么办?
- Flowable 数据库表结构 ACT_HI_ACTINST
- mybatis是什么_深入解析:Mybatis接口没有实现类为什么可以执行增删改查?
- 基于序列标注的信息抽取模型(已申请专利)
- SQL Server的锁机制
- 【概率论与数理统计】目录
- tcl语言读取文件一行_TCL语言笔记:TCL基础语法
- VueSSR的一些理解和详细配置
- bootstrap 检验 法 原理_三种中介效应检验方法及操作步骤 - spssau
- AirDisk-Q3C/T2/Q3S/Q3X加密空间PIN码忘记怎么找回?
- NameNode中Fslmage镜像和Edits编辑日志详解
- 获取今天是星期几的四种写法
- HTML设置字体大小自适应屏幕与echarts图表颜色根据数据大小实时刷新图表颜色
- 【协议】MQTT、CoAP、HTTP比较,MQTT协议优缺点
- 罗克韦尔(AB)PLC与MySQL/SQLServer/PostgreSQL数据库对接
- 面试官:为什么 Kafka 如此之快?
- 落单的数(Java)