以下是转载http://developer.openplug.com/zh/resources/training-material/329-tutorial-in-app-payments教程的部份内容
关于程序内购买(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上,您必须自行管理这些数据(例如由您自己的产品服务器汇入这些数据)
- 在iOS上您可以用getProductsInfo()方法和注册的产品识别号来从AppStore取得产品信息(特别在地化的描述和价钱)。
- 依据用户的需求,调用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)上免费下载安装。)