用ActionScript/MXML同时开发/实作iOS与Android的程序内购买(In-App Payments)
2011-09-22 17:02
393 查看
以下是转载http://developer.openplug.com/zh/resources/training-material/329-tutorial-in-app-payments教程的部份内容
程序内购买的流程如下:
当用户要购买某一产品时,应用程序会要求服务器向用户收取货款。
服务器会处理全部交易相关的细节,其中包括向用户提示付款/确认付款的窗体和处理财务方面的交易。
当付款的流程完成后,服务器会传送付款的细节给应用程序,例如订单编号、订购的时间/日期和付款金额等。
应用程序向服务器回复告知已收到传来的付款通知。
关于每个平台上关于程序内购买的更多信息,请参阅平台的官方文件:
Android: In-App Billing(程序内付款)
iOS: In-App Purchase Programming Guide(程序内购买编程指南)
预设条件:
Android:
您需要Google Merchant Checkout 账号。
将您的应用在Android Market上架。
注册您要用户购买的产品
参阅Testing In-app Purchases Using Your Own Product IDs(用您的产品识别号来测试程序内购买)
iOS:
您将需要paid apps合同。
将应用放上iTunes Connect。
注册您要用户购买的产品。
参阅iTunes Connect developer guide(iTunes Connect开发者指南)。
使用OpenPlug Studio作程序内购买
在这个章节我们将说明如何用OpenPlug Studio作程序内购买,它的流程很简单:
建立一个在整个应用生命周期都是单一的InAppPaymentsManager实例。
这个类是放在openplug.elips.services 套件。(更多的信息请参阅 OpenPlug Studio 应用程序接口参考手册)
用isEnabled()方法检查是否在您的设备/应用InAppPayments服务有启用。这个服务会分派inAppPaymentsEnabled 事件。
当您收到inAppPaymentsEnabled 事件时(只有在InAppPayments服务有启用时才会发生),开始让您的用户购买产品:
在iOS上您可以用getProductsInfo()方法和注册的产品识别号来从AppStore取得产品信息(特别在地化的描述和价钱)。
系统将会发出inAppPaymentsProductsInfo 事件。
在Android上,您必须自行管理这些数据(例如由您自己的产品服务器汇入这些数据)
依据用户的需求,调用purchase 方法来对给予的(用户购买的产品的)产品识别号启动付款的请求。
当交易的装态改变时,系统会发出inAppPaymentsUpdated 事件。
用confirmTransactions()方法来回复服务器您的应用已处理(已传送付款)。
用restoreTransactions()方法来回复先前的交易(只能对可以回复交易的产品种类,可参阅平台官方文件)。
系统将会发出inAppPaymentsUpdated 事件。
注意:
您会发现所有的方法都是异步的(asynchronous),亦即您会藉由InAppPaymentsManager 事件得到您发出请求的响应。
一个强烈建议的编程好习惯是在您的应用一开始启动时就监听InAppPaymentEvent 事件,原因是平台可能会在应用程序启动的过程发送这类的事件。
例如您的应用在付款交易的过程中不正常的关闭,这样的情况下,系统会在应用下次启动时告知交易的状态。
(注:OpenPlugStudio是可用MXML/ActionScript同时建立iPhone/iPad、Android和Symbian手机/平板计算机原生型应用程序的开发工具。它用了Flex 3.5框架的子集,但它是将MXML/ActionScript转成C++再用平台编译程序编成平台机器码,并把大部份常用的UI Component直接"映像"到原生的UI控件,因此会呈现和一般Xcode和Android SDK开发出来的用户界面一模一样的效果。自从OpenPlug公司被Alcatel-Lucent并购后,这个工具变成全功能免费(只对技术支持收费)。它可在它的"开发者天地"(
http://developer.openplug.com/zh)上免费下载安装。)
关于程序内购买(In-App Payments)
程序内购买(In-App Payment)是Android和iOS设备上可以用来在移动应用内贩卖额外的虚拟内容的web服务。应用程序可以提供任何应用"内部"的产品,且用户可以在此付款。 应用程序不必处理财务有关的交易动作,这些事将服务器的付款服务来处理。 OpenPlug Studio现在提供标淮的API支持iOS和Android的程序内购买。 |
当用户要购买某一产品时,应用程序会要求服务器向用户收取货款。
服务器会处理全部交易相关的细节,其中包括向用户提示付款/确认付款的窗体和处理财务方面的交易。
当付款的流程完成后,服务器会传送付款的细节给应用程序,例如订单编号、订购的时间/日期和付款金额等。
应用程序向服务器回复告知已收到传来的付款通知。
关于每个平台上关于程序内购买的更多信息,请参阅平台的官方文件:
Android: In-App Billing(程序内付款)
iOS: In-App Purchase Programming Guide(程序内购买编程指南)
预设条件:
Android:
您需要Google Merchant Checkout 账号。
将您的应用在Android Market上架。
注册您要用户购买的产品
参阅Testing In-app Purchases Using Your Own Product IDs(用您的产品识别号来测试程序内购买)
iOS:
您将需要paid apps合同。
将应用放上iTunes Connect。
注册您要用户购买的产品。
参阅iTunes Connect developer guide(iTunes Connect开发者指南)。
使用OpenPlug Studio作程序内购买
在这个章节我们将说明如何用OpenPlug Studio作程序内购买,它的流程很简单:
建立一个在整个应用生命周期都是单一的InAppPaymentsManager实例。
这个类是放在openplug.elips.services 套件。(更多的信息请参阅 OpenPlug Studio 应用程序接口参考手册)
用isEnabled()方法检查是否在您的设备/应用InAppPayments服务有启用。这个服务会分派inAppPaymentsEnabled 事件。
当您收到inAppPaymentsEnabled 事件时(只有在InAppPayments服务有启用时才会发生),开始让您的用户购买产品:
在iOS上您可以用getProductsInfo()方法和注册的产品识别号来从AppStore取得产品信息(特别在地化的描述和价钱)。
系统将会发出inAppPaymentsProductsInfo 事件。
在Android上,您必须自行管理这些数据(例如由您自己的产品服务器汇入这些数据)
依据用户的需求,调用purchase 方法来对给予的(用户购买的产品的)产品识别号启动付款的请求。
当交易的装态改变时,系统会发出inAppPaymentsUpdated 事件。
用confirmTransactions()方法来回复服务器您的应用已处理(已传送付款)。
用restoreTransactions()方法来回复先前的交易(只能对可以回复交易的产品种类,可参阅平台官方文件)。
系统将会发出inAppPaymentsUpdated 事件。
注意:
您会发现所有的方法都是异步的(asynchronous),亦即您会藉由InAppPaymentsManager 事件得到您发出请求的响应。
一个强烈建议的编程好习惯是在您的应用一开始启动时就监听InAppPaymentEvent 事件,原因是平台可能会在应用程序启动的过程发送这类的事件。
例如您的应用在付款交易的过程中不正常的关闭,这样的情况下,系统会在应用下次启动时告知交易的状态。
(注:OpenPlugStudio是可用MXML/ActionScript同时建立iPhone/iPad、Android和Symbian手机/平板计算机原生型应用程序的开发工具。它用了Flex 3.5框架的子集,但它是将MXML/ActionScript转成C++再用平台编译程序编成平台机器码,并把大部份常用的UI Component直接"映像"到原生的UI控件,因此会呈现和一般Xcode和Android SDK开发出来的用户界面一模一样的效果。自从OpenPlug公司被Alcatel-Lucent并购后,这个工具变成全功能免费(只对技术支持收费)。它可在它的"开发者天地"(
http://developer.openplug.com/zh)上免费下载安装。)
相关文章推荐
- 【iOS开发-32】iOS程序真机调试须要购买调试证书怎么办?
- HTML5定稿了,终于有一种编程语言开发的程序可以在Android和IOS两种设备上运行了
- 使用Simple MvvmToolkit开发Android和iOS程序
- android,ios,apicloud 同时开发两个平台应用,方便简单一体化,自带svn,云编译,中文IDE
- HTML5定稿了,终于有一种编程语言开发的程序可以在Android和IOS两种设备上运行了
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果
- nokey属性(输出没有名称的数组)---精通android、IOS App应用服务程序开发
- 【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!
- 微信小程序开发之IOS和Android兼容的问题
- ios应用内购买开发记录教程 ios iap In-App Purchases
- 输出Bag中的所有记录为一个只有值的json数组---精通android、IOS App应用服务程序开发
- 输出无名称的空值数组---精通android、IOS App应用服务程序开发
- 【iOS-Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!
- 官方揭秘!同时兼容iOS、Android、微信小程序的UI引擎
- 开发Flex for Android第一个ANE(ActionScript Native Extensions)本地扩展
- HotApp小程序统计开发总结之设置了navigationBarBackgroundColor颜色,android 可以显示,ios不能显示
- iOS 开发 初级:应用内购买 In-App Purchase
- HotApp小程序统计开发总结之设置了navigationBarBackgroundColor颜色,android 可以显示,ios不能显示
- 【iOS开发-32】iOS程序真机调试需要购买调试证书怎么办?
- 微信小程序开发之IOS/Android兼容坑