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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TurboBerry(黑莓来电通)是一款多功能黑莓手机软件,具有以下主要功能: ◆ 来电,去电归属地显示:支持 203 个国家和地区,国内 342 个地区、324 个电话区号、36 万个手机号段(采用最新数据库,支持所有新号段)和 89 个常用号码。 ◆ 未接来电,新短信提醒:可选用 LED、振动、语音、消息框四种方式定时提醒。LED 可设置颜色、亮度、闪烁时间、亮度递减时间。 ◆ 语音报号:可在来电或提醒时用语音播报归属地、号码类型、名字和号码的任意组合。 ◆ 来电防火墙:按照名单、通讯簿或地区(省份或城市的任意组合)拦截电话。 ◆ 短信防火墙:按照名单、通讯簿或关键词拦截短信。 ◆ 智能拨号:输入号码开头或任意部分,自动匹配相关号码后拨号。 ◆ 通话提示:电话接通或挂断振动提示,电话接通时间定时提示。 ◆ 快速功能:快速呼叫、快速短信、快速打开软件/网站。 ◆ 自动待机:关屏后可定时自动待机,节省电量。(OS 4.5 ~ 4.7) ◆ 自动锁屏:关屏后可定时自动锁屏,省时省力。(OS 5.0 以上) ◆ 电量指示:在系统各界面可显示当前电量。(OS 4.6 以上) ◆ 图标电量:桌面的 TurboBerry 图标可显示当前电量。 ◆ 每日天气:一键更新所在地(或设置地)今天和明天的天气。 ◆ 生活指数:一键更新每日生活指数,包括衣食住行等 10 项指数。 ◆ 人体节律:人体每天的体力、情绪和智力情况分析。 ◆ 校对时间:同步国家授时中心并设置手机时间。 ◆ 每月流量:记录当月使用的流量总数。(OS 4.6 以上) ◆ 电量记录和分析:记录电量损耗情况,计算平均耗电并预计可用时间。 ◆ 一键开关 WiFi:一键打开或关闭 WiFi。 ◆ 一键开关信号:一键打开或关闭手机信号。还可以自动打开信号。 ◆ 充电满提示:充电满后会发声提示。 ◆ 自动关闭低电量 LED 提醒:可自动关闭,也可手动关闭。 ◆ 自动关闭 WiFi:WiFi 断线一段时间后,可自动关闭 WiFi。 ◆ 更多:语音报时、IP 号码加拨、“响一声”电话提示、自动打开手机信号、一键打开回复转发删除短信、一键清内存、一键清日志/看日志、系统信息显示、换肤等...
引用\[1\]:这是一条非常珍贵的命令,找了好久才找到的:(有时候运行该命令一次便可以安装成功,有时候要运行好几次,这可能和网络有关。) pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox 📍三、 安装pycocotools 。 引用\[2\]: 最近做的项目需要安装cython_bbox包,但是当我天真的输入pip install cython_bbox准备满心欢喜的等待安装成功却发现...,它报错了,这是一个从未见过的、非常长的报错,它长这个样子: 。 引用\[3\]:pip install cython_bbox报错如下 Collecting cython_bbox Using cached cython_bbox-0.1.3.tar.gz (41 kB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> \[6 lines of output\] Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "/tmp/pip-install-wcb8evni/cython-bbox_4ae61c9bb59a4b7fa79b746b9fb9560e/setup.py", line 10, in <module> from Cython.Build import cythonize ModuleNotFoundError: No module named 'Cython' \[end of output\] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip. hint: See above for details. 现有的解决方法 。 问题:ubuntu安装cython-bbox 回答: 在Ubuntu上安装cython-bbox时,可能会遇到一些问题。根据引用\[1\]中提供的命令,你可以尝试运行以下命令来安装cython-bbox:pip install -e git+https://github.com/samson-wang/cython_bbox.git#egg=cython-bbox。然而,根据引用\[2\]和引用\[3\]的描述,你可能会遇到一个名为"Cython"的模块缺失的错误。这意味着你需要先安装Cython模块。你可以使用以下命令来安装Cython模块:pip install Cython。安装完成后,再次尝试安装cython-bbox包,应该就可以成功了。希望这能帮到你。 #### 引用[.reference_title] - *1* *2* [cython_bbox库就该这么安装](https://blog.csdn.net/qq_51831335/article/details/126457486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ubuntu中pip install cython_bbox报错](https://blog.csdn.net/weixin_41868104/article/details/123891737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值