搜索文档 /
开始 插件

在App Purchase 2中

iOS、Android、Windows、macOS和XBox上的应用内购买。

特性

ios 安卓 win-8 赢得10 / uwp mac
耗材
非消耗品
订阅
恢复购买
收到验证
可下载内容
介绍价格

支持:

  • iOS 版本7.0或更高。
  • 安卓 版本2.2 (API级别8)或更高
    • 使用谷歌播放客户端版本3.9.16或更高
  • 窗户 Store/Phone 8.1或更高版本
  • Windows 10移动版
  • macOS 版本10
  • Xbox一
    • (以及任何支持微软UWP的平台)
https://github.com/j3k0/cordova-plugin-purchase

被科多瓦的问题困住了?

如果您正在构建一个严肃的项目,那么您无法承担花费数小时的故障排除时间。betway东盟体育appIonic的专家为社区插件和顶级插件提供优质的咨询服务。

今天就联系我们!

安装

NPM安装cordova插件-purchase NPM安装@ionic-nbetway东盟体育appative/in-app-purchase-2 betway东盟体育app离子帽同步 betway东盟体育appioncordova插件添加cordova-plugin-purchase NPM安装@ionic-nbetway东盟体育appative/in-app-purchase-2
betway东盟体育app必威滚球分析软件Ionic Enterprise提供了来自Ionic团队的完全支持和维护的插件。 了解更多 或者如果您对该插件的企业版本感兴趣 联系我们

支持的平台上

  • iOS
  • 安卓
  • 窗户

使用

反应

在这里看到的。


              进口
             
              
             InAppPurchase2
              }
             
              
             
              “@betway东盟体育appionic-native / in-app-purchase-2 / ngx”
              
             
              构造函数
              
               公共
              平台
               
              平台
               ,
              
               私人
              商店
               
              InAppPurchase2
              
             
              
             平台
              
              准备好了
              
              
              
              然后
              
              
              
             
              = >
             
              
             
              
              
             商店
              
              注册
              
              
             id
              
             
              “my_product_id”
              ,
             
              类型
              
             
              
              
             商店
              
              NON_RENEWING_SUBSCRIPTION
              ,
             
              }
              
              
             
              
              
             商店
              
              
              
              “my_product_id”
              
             
              
              批准
              
              p
             
              = >
             p
              
              验证
              
              
              
             
              
              验证
              
              p
             
              = >
             p
              
              完成
              
              
              
              
             
              
              
             商店
              
              刷新
              
              
              
             
              }
              
              
             
              }
             
              ...
             
              
              
             商店
              
              订单
              
              “my_product_id”
              
              
             

完整的示例


             
              //平台准备好后
             
              
              
             商店
              
             冗长
              
             
              
              
             商店
              
              调试
              
             
              
              
             商店
              
              注册
              
              
             id
              
             
              “my_product_id”
              ,
             
              类型
              
             
              
              
             商店
              
              PAID_SUBSCRIPTION
              ,
             
              }
              
              
             
              //注册特定产品的事件处理程序
             
              
              
             商店
              
              
              
              “my_product_id”
              
              
              注册
              
             
              
              产品
               
              IAPProduct
              
             
              = >
             
              
             
              控制台
              
              日志
              
              的注册:
             
              +
             
              JSON
              
              stringify
              
             产品
              
              
              
             
              }
              
              
             
              / /更新
             
              
              
             商店
              
              
              
              “my_product_id”
              
              
              更新
              
             
              
              产品
               
              IAPProduct
              
             
              = >
             
              
             
              控制台
              
              日志
              
              “更新”
             
              +
             
              JSON
              
              stringify
              
             产品
              
              
              
             
              }
              
              
             
              //用户关闭本地购买对话框
             
              
              
             商店
              
              
              
              “my_product_id”
              
              
              取消了
              
             
              
              产品
              
             
              = >
             
              
             
              控制台
              
              错误
              
              “购买已取消”
              
              
             
              }
              
              
             
              //跟踪所有存储错误
             
              
              
             商店
              
              错误
              
             
              
              犯错
              
             
              = >
             
              
             
              控制台
              
              错误
              
              “商店错误”
             
              +
             
              JSON
              
              stringify
              
             犯错
              
              
              
             
              }
              
              
             
              //只有当存储准备好使用时才运行一些代码
             
              
              
             商店
              
              准备好了
              
              
              
             
              = >
             
              
             
              控制台
              
              日志
              
              “商店准备好了”
              
              
             
              控制台
              
              日志
              
              的产品:
             
              +
             
              JSON
              
              stringify
              
              
              
             商店
              
             产品
              
              
              
             
              控制台
              
              日志
              
              JSON
              
              stringify
              
              
              
             商店
              
              得到
              
              “my_product_id”
              
              
              
              
             
              }
              
              
             
              //刷新应用内产品的状态
             
              
              
             商店
              
              刷新
              
              
              
             
              ...
             
              //进行购买
             
              
              
             商店
              
              订单
              
              “my_product_id”
              
              
             

哲学

API主要是基于事件的。作为这个插件的用户,你必须为你所注册的产品所发生的变化注册监听器。

听证机制的核心是 当() 方法。它允许您使用查询机制来通知一个或一组产品的更改:


             
              
              
             商店
              
              
              
              “产品”
              
              
              更新
              
             refreshScreen
              
              
             
              //匹配任何产品
             
              
              
             商店
              
              
              
              “full_version”
              
              
              拥有
              
             unlockApp
              
              
             
              //匹配特定的产品
             
              
              
             商店
              
              
              
              “订阅”
              
              
              批准
              
             serverCheck
              
              
             
              //匹配所有订阅
             
              
              
             商店
              
              
              
              “下载的内容”
              
              
              下载
              
             showContent
              
              

更新 事件在产品的其中一个字段发生更改时触发 拥有 例如Status)。

这个事件提供了一种通用的方式来跟踪您的购买状态,在需要时解锁功能,并相应地刷新您的视图。

注册产品

商店需要知道产品的类型和标识符,然后才能在代码中使用它们。

使用 store.register () 在第一次调用之前定义它们 store.refresh ()

一旦注册,你就可以使用 store.get () 检索 IAPProduct 对象。


             
              
              
             商店
              
              注册
              
              
             id
              
             
              “my_consumable1”
              ,
             
              类型
              
             
              
              
             商店
              
              可消费的
             
              }
              
              
             
              ...
             
              常量
             p
              
             
              
              
             商店
              
              得到
              
              “my_consumable1”
              
              

该产品 id 而且 类型 必须与苹果、谷歌或微软开发控制台中定义的产品相匹配。

了解更多 来自维基

显示产品

就在你注册了你的产品之后,除了他们的以外,没有什么是关于他们的 id , 类型 还有一个可选选项 别名

的初始调用时 store.refresh () ,平台的服务器将被联系加载关于注册产品的信息:人类可读 标题 而且 描述 , 价格 等。

这不是一个可选的步骤,商店老板要求你显示关于产品的信息完全从他们的服务器上检索:不允许硬编码价格和标题!这对你来说也很方便,因为你可以改变物品的价格,知道它会立即反映在客户的设备上。

注意,当需要这些信息的第一个视图出现在屏幕上时,这些信息可能是不可用的。对您来说,最好的选择是对产品进行视图监视器更改。

采购

发起购买

方法初始化购买 store.order(“some_product_id”) 方法。

商店将管理内部采购流程。它会:

  • 与一个 批准 事件。产品进入 批准 状态。
  • 与一个 取消了 事件。产物回到 有效的 状态。
  • 与一个 错误 事件。产物回到 有效的 状态。

有关产品状态的详细信息,请参阅产品生命周期部分。

完成一次购买

一旦交易被批准,产品仍然不属于自己:商店需要确认在完成交易之前购买的商品已经送达。

要确认交付,您将使用 product.finish () 方法。

示例使用

在初始化期间:


              
              
             商店
              
              
              
              “extra_chapter”
              
              
              批准
              
              
              产品
               
              IAPProduct
              
             
              = >
             
              
             
              //下载特性
             应用程序
              
              downloadExtraChapter
              
              
             
              
              然后
              
              
              
             
              = >
             产品
              
              完成
              
              
              
              
             
              }
              
              

当点击购买按钮时:


              
              
             商店
              
              订单
              
              “extra_chapter”
              
              

购买一些未竟的

如果你的应用不能传递内容, product.finish () 不会被调用。

别担心:是 批准 事件将在您下次调用时重新触发 store.refresh () ,这很可能是应用程序下次启动的时间。挂起的事务是持久的。

简单的情况

在最简单的情况下,其中:

  • 购买的商品只在当地送货;
  • 您不希望(或不需要)实现接收验证;

你可能只想自动完成所有的购买。你可以这样做:


              
              
             商店
              
              
              
              “产品”
              
              
              批准
              
              
              p
               
              IAPProduct
              
             
              = >
             p
              
              完成
              
              
              
              

注意:“product”查询将匹配任何购买(参见“查询”了解查询的更多细节)。

收到验证

要获得关于购买的最新信息(以防购买被取消或订阅续订),您应该实现服务器端收据验证。

这也可以保护你免受虚假“购买”的伤害,这些“购买”是由一些用户在其设备上使用“免费应用内购买”应用进行的。

当一笔购买被商店批准后,交易信息就会丰富起来 product.transaction 属性)。

要验证购买,你必须做三件事:

  • 配置验证器。
  • 调用 product.verify () 批准 事件,然后完成事务。
  • 当事务是时,完成事务 验证

无耻的插头 :这是一个很多用户都很纠结的功能,所以作为这个插件的作者,我们可以把它作为一种服务提供给你: https://billing.fovea.cc/ (在你开始赚大钱之前是免费的)

示例使用验证URL


              
              
             商店
              
             验证器
              
             
              “https://billing.fovea.cc/”
              
             
              
              
             商店
              
              
              
              “我的东西”
              
             
              
              批准
              
              
              p
               
              IAPProduct
              
             
              = >
             p
              
              验证
              
              
              
             
              
              验证
              
              
              p
               
              IAPProduct
              
             
              = >
             p
              
              完成
              
              
              
              

订阅

对于订阅,必须实现远程接收验证。

当接收验证器返回一个 商店。PURCHASE_EXPIRED 错误代码,订阅将自动松动其 拥有 的地位。

通常,您将通过这种方式启用和禁用对内容的访问。


              
              
             商店
              
              
              
              “my_subcription”
              
              
              更新
              
              
              产品
               
              IAPProduct
              
             
              = >
             
              
             
              如果
             
              
             产品
              
             拥有
              
             应用程序
              
              subscriberMode
              
              
              
             
              其他的
             应用程序
              
              guestMode
              
              
              
             
              }
              
              

产品生命周期

产品将在应用程序执行期间更改状态。

下面是产品可能经过的不同状态的图表。


             注册+——>无效| + + - > >有效请求+ - >启动  +-+ | ^ +------------------------------+ | | | | +--> 下载+ - >下载  + | | | | | +--> 批准  +--------------------------------+--> + - - - >拥有完成  | | +-------------------------------------------------------------+ #### 笔记——完成时,可消耗的产品将回到“有效”状态,而其他将进入“拥有”状态。-购买过程中的任何错误都将使产品回到“有效”状态。-在应用程序启动过程中,产品可能会立即从“注册”变为“批准”或“拥有”,例如,如果它们是购买的非消耗品或未过期的订阅。-非更新订阅仅为iOS产品。详细说明请参见[iOS非更新订阅文档](https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/ios.md#non-renewing)。## events - ' loaded(IAPProduct) ' -当产品数据从存储加载时调用。- ' updated(IAPProduct) ' -当产品发生任何更改时调用。- ' error(err) ' -当订单失败时调用。- ' err '参数是一个错误对象——' approved(IAPProduct) '——当产品订单被批准时调用。—“owned(IAPProduct)”—当非消耗性产品或订阅拥有时调用。 - `cancelled(IAPProduct)` - Called when a product order is cancelled by the user. - `refunded(IAPProduct)` - Called when an order is refunded by the user. - Actually, all other product states have their promise - `registered`, `valid`, `invalid`, `requested`, `initiated` and `finished` - `verified(IAPProduct)` - Called when receipt validation successful - `unverified(IAPProduct)` - Called when receipt verification failed - `expired(IAPProduct)` - Called when validation find a subscription to be expired - `downloading(IAPProduct, progress, time_remaining)` - Called when content download is started - `downloaded(IAPProduct)` - Called when content download has successfully completed ## Learn More - [GitHub](https://github.com/j3k0/cordova-plugin-purchase) - [GitBook](https://purchase.cordova.fovea.cc/) - [Wiki](https://github.com/j3k0/cordova-plugin-purchase/wiki) - [API reference](https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md) ## Technical Support or Questions If you have questions or need help integrating In-App Purchase, [Open an Issue on GitHub](https://github.com/j3k0/cordova-plugin-purchase/issues) or email us at _support@fovea.cc_. @interfaces IAPProduct IAPProductOptions IAPProductEvents
Baidu