J3k0 cordova-plugin-purchase 沙盒模式不起作用?

2023-11-25

好吧,我几乎已经完成了 Cordova 应用内购买,以使其在 Windows 沙箱模式下工作。我已经经历过this线程并尝试了所有可能的方法来实现它,但我做不到。我已经放置了in-app-purchase.xml in www按照说明的文件夹。代码如下。

 store.verbosity = store.QUIET;
 store.sandbox=true;

                store.register({
                    id: productId,
                    type: store.PAID_SUBSCRIPTION
                });

                // Listen to the 'updated' event for individual product
                store.when(productId).updated(function (p) {
                    $ionicLoading.hide();
                });

                // Initiate a purchase
                store.order(productId);

                // When the purchase is approved, show an alert
                store.when(productId).approved(function (order) {
                    Store.subscribeWindows(month, order);
                    order.finish();
                });

                // When the purchase is approved, show an alert
                store.when(productId).cancelled(function (order) {
                    $ionicPopup.alert({
                        title: 'Subscribe was cancelled!',
                        template: 'Try again!'
                    });
                    order.finish();
                });

                // When the store is ready all products are loaded and in their "final" state.
                store.ready(function () {
                    console.log("The store is ready");
                });

                // Deal with errors:
                store.error(function (err) {
                    $ionicLoading.hide();
                    $ionicPopup.alert({
                        title: 'Something went wrong',
                        template: err.message
                    });
                })


                // This will contact the server to check all registered products validity and ownership status.
                // It's mostly fine to do this only at application startup but you can refresh it more often.
                store.refresh();

            }

应用内购买.xml

<?xml version="1.0" encoding="utf-8" ?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>CN=CB5BB00C-6A35-44A7-B46E-013721E959BD</AppId>
      <LinkUri>https://www.microsoft.com/store/apps/9nblggh3tvsk</LinkUri>
      <CurrentMarket>en-us</CurrentMarket>
      <AgeRating>12</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>App Name</Name>
        <Description>App Description</Description>
        <Price>0</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </App>
    <Product ProductId="com.product.premium365" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium365</Name>
        <Price>59.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
    <Product ProductId="Product03" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>Product03</Name>
        <Price>14.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
        xmlfile.xml
      </MarketData>
    </Product>
    <Product ProductId="com.product.premium6" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium6</Name>
        <Price>29.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
    <Product ProductId="com.product.premium" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium</Name>
        <Price>4.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
    <!-- Setting a prepurchased durable -->
    <Product ProductId="com.product.premium365">
      <IsActive>true</IsActive>
    </Product>
  </LicenseInformation>
</CurrentApp>

下面的屏幕截图是我的噩梦 - 错误。

enter image description here

我曾尝试过store.inappbilling.setTestMode();但它正在记录错误

Object doesn't support property or method 'setTestMode'

使用的资源

  • 应用内购买插件 (From 拉斐尔洛普从 J3k0 分叉的仓库)
  • 用于测试的 Windows Edge 模拟器

我也尝试过dkarzon叉子对我来说也不起作用。

我即将到达任务的尽头。 PL。有人帮忙 我出去。这至关重要。

更新 -> 1

As per 德卡松的说明我已经使用了主存储库中的库并注册了store.inappbilling.setTestMode()带回调并触发失败回调。它给出了一个错误missing command error当我声明函数时错误回调与参数。 PL。请注意,我直接测试该应用程序,而不是从商店测试。这里是代码片段我曾经做。现在,它会跳过沙盒模式并显示带有所选内容的 Windows 购买对话框add-ons同样直接在生产中。

更新 -> 2

我调试并发现folder.getFileAsync("in-app-purchase.xml")最初无法执行并返回错误Input data not in expected format然后我按照以下结构编辑了文件WindowsStoreProxy.xml,现在它给出了一个错误The parameter is incorrect.

enter image description here

这是我更新的 XML

<?xml version="1.0" encoding="utf-16" ?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>CN=CB5BB00C-6A35-44A7-B46E-013721E959BD</AppId>
      <LinkUri>https://www.microsoft.com/store/apps/9nblggh3tvsk</LinkUri>
      <CurrentMarket>en-us</CurrentMarket>
      <AgeRating>12</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>App Name</Name>
        <Description>App Decription</Description>
        <Price>0.00</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </App>
    <Product ProductId="com.product.premium" LicenseDuration="10" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium</Name>
        <Price>4.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </Product>
    <Product ProductId="Product03" LicenseDuration="0" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>Product03</Name>
        <Price>14.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </Product>
  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
    <Product ProductId="com.product.premium">
      <IsActive>true</IsActive>
      <ExpirationDate>2018-01-19T00:00:00.00Z</ExpirationDate>
    </Product>
  </LicenseInformation>
</CurrentApp>

更新 -> 3

我的错,经过深度调试后,我发现我给出了 Package Identity 而不是AppId在 XML 中,这会导致问题和this也帮助了我。使用生成的应用程序IDWindows.ApplicationModel.Store.CurrentApp.AppId因此我可以看到购买模拟弹出。所有错误代码都会触发回调,但是当我选择S_OK它什么也不返回。我经历过这个SO post但不幸的是,它不起作用。

enter image description here

更新的 XML

<?xml version="1.0" encoding="utf-16" ?>
<CurrentApp>
  <ListingInformation>
    <App>
      <AppId>fb9ec87b-54b-46f-b1e6-87d857dfa730</AppId>
      <LinkUri>http://apps.windows.microsoft.com/app/988b90e4-5d4d-4dea-99d0-e423e414fbc</LinkUri>
      <CurrentMarket>en-us</CurrentMarket>
      <AgeRating>12</AgeRating>
      <MarketData xml:lang="en-us">
        <Name>App Name</Name>
        <Description>App Description</Description>
        <Price>0.00</Price>
        <CurrencySymbol>$</CurrencySymbol>
      </MarketData>
    </App>
    <Product ProductId="com.product.premium" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium</Name>
        <Price>4.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
    <Product ProductId="Product03" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>Product03</Name>
        <Price>14.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
    <Product ProductId="com.product.premium6" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium6</Name>
        <Price>29.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>
    <Product ProductId="com.product.premium365" ProductType="Durable">
      <MarketData xml:lang="en-us">
        <Name>com.product.premium365</Name>
        <Price>59.99</Price>
        <CurrencySymbol>$</CurrencySymbol>
        <CurrencyCode>USD</CurrencyCode>
      </MarketData>
    </Product>

  </ListingInformation>
  <LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
  </LicenseInformation>

</CurrentApp>

最后,一切正常,现在我得到了approved打回来。感谢大家的支持,特别是@dkarzon他们在忙碌的生活中抽出时间。

我将其中一种产品添加为活跃产品LicenseInformation标签也是如此。更新 -> 3查询中还有另一个步骤可以解决此类问题,如果有人在将来使 Windows 沙箱模式工作遇到困难,请参阅作为参考。

<LicenseInformation>
    <App>
      <IsActive>true</IsActive>
      <IsTrial>false</IsTrial>
    </App>
    <Product ProductId="com.animecrave.premium">
      <IsActive>true</IsActive>
    </Product>
  </LicenseInformation>

参考

  • 如何在Windows 10应用程序中实现应用内购买?
  • UWP:无法访问许可证信息
  • https://github.com/Microsoft/Windows-universal-samples/blob/win10-1507/Samples/Store/shared/data/expiring-product.xml
  • https://learn.microsoft.com/de-de/windows/uwp/monetize/in-app-purchases-and-Trials-using-the-windows-applicationmodel-store-namespace#proxy
  • https://learn.microsoft.com/en-us/uwp/api/windows.applicationmodel.store.currentapp
  • http://www.wadewegner.com/2012/09/getting-the-application-id-and-hardware-id-in-windows-store-applications/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

J3k0 cordova-plugin-purchase 沙盒模式不起作用? 的相关文章

  • 在 Android 中使用 PhoneGap 打开 PDF

    我需要打开一个位于 url 中的 PDF 文件 我需要用 PDF 查看器打开它 有可能的 谢谢大家 此致 我建议使用儿童浏览器插件 https build phonegap com blog childbrowser plugin并使用 G
  • Android 设备与本地 API 服务器通信

    我想知道如何在外部设备上模拟我的 Android 应用程序 以便与我的计算机上运行的本地 API 服务器进行通信 该应用程序使用 cordova 并使用 USB 连接在 Android 设备上运行 我正在本地运行 API 服务器 使用我的机
  • PhoneGap文件传输错误1、哪里写FileTransfers?

    相关 https stackoverflow com questions 21044197 download file and store them locally in sdcard using phonegapbuild https s
  • 测试应用内结算:“发布者无法购买此商品”

    我的应用程序似乎已准备好在我的设备上进行应用内购买程序的 现实生活 测试 但是 我在 Play 商店中收到 发布商无法购买此商品 的错误消息 现在 我应该如何测试这个 我不想通过仅用于测试的虚拟帐户重新安装手机来丢失手机的配置 在开发者控制
  • 更新 iOS 应用程序的应用内购买内容?

    我似乎无法在任何地方找到这个问题的答案 所以这里 我正在开发一个 iOS 应用程序 该应用程序将具有非消耗性应用内购买 扩展包 例如 假设我出售一个包含 10 个级别的包 并且在一个月内我想将应用内购买更新为包含 15 个级别 用户无需重新
  • 在移动浏览器或 PhoneGap 应用程序之间进行检测

    是否可以使用 JavaScript 检测用户是否通过浏览器或应用程序进行访问 我正在通过网页和 PhoneGap 应用程序开发适用于多个移动操作系统的混合应用程序 目标是 独立于部署目标使用相同的代码 仅当用户代理是应用程序时添加 Phon
  • Phonegap 不显示警报

    为什么phonegap不显示警报通知 运行于 iPhone 5 1 1 phonegap Phonegap 2 1 0 0 g26d211b 山狮 10 8 2 xcode 4 4 1
  • 如何指定phonegap中的最小SDK?它忽略 config.xml 中的 android-minsdkversion

    这是一个phonegap 3 5 cordova 3 Android 应用程序 在 www config xml 我有
  • 从相机拍照后图像未刷新

    我将这个简单的代码与 ionic 2 一起使用
  • 错误:UNABLE_TO_VERIFY_LEAF_SIGNATURE Phonegap 安装

    我正在尝试在 Ubuntu 中安装 Phonegap NodeJS 安装成功 但是我无法安装 Phonegap 本身 这是终端的错误输出 test test VirtualBox sudo npm install g phonegap np
  • PhoneGap - 构建错误

    我对phonegap非常陌生 并尝试通过输入phonegap上描述的命令来创建一个简单的测试应用程序install http phonegap com install webpage 不幸的是 我在命令行中收到以下错误 BUILD FAIL
  • cordova 添加平台 - 执行命令“ant”时出错

    在一开始的时候 我知道这个问题已经被问了太多次了 我检查了所有的答案 尝试了我发现的每一种组合和每一种解决方案 但到目前为止没有任何效果对我有用 问题 我已经成功安装了cordova 从官方网站下载了它 并且我一直在遵循指南 我已经添加wp
  • 用一个命令更新 cordova 插件

    我想知道是否有更简单的方法来更新 cordova 插件 我用谷歌搜索 找到了一个钩子 2013年 但这不是100 我想要的 我知道我可以通过两个步骤来做到这一点 rm 然后添加 但我正在寻找更好的 官方 方法来帮助我哪些插件有更新的版本 我
  • cordova - 错误:无法获取平台 android

    我安装了 cordova 并创建了一个新项目 但是当我使用这个命令添加android平台时 cordova平台添加android 出现此错误 Error Failed to fetch platform android Probably t
  • cordova.js 导致引用错误“未定义需求”

    我想用恩科尔多瓦检测设备的网络状态 然而 一旦我包括科尔多瓦 js我收到一个错误 未捕获的引用错误 未定义 require cordova js 23 我已经安装并成功运行Node js and Cordova 我已经下载并安装了恩科尔多瓦
  • 跨 webView 和 CordovaWebView android 共享 localStorage

    我正在尝试在 webView 和 CordovaWebView 之间共享活动数据 CordovaWebView 当然使用 webView 这就是为什么我不明白为什么存储在我的 PhoneGap 应用程序的 localStorage 中的数据
  • chrome 检查器,远程调试在我的移动应用程序上不再正常工作

    我使用 Cordova Ionic 构建了一个渐进式 Web 应用程序 三年来的大部分时间里 我一直在使用开发工具来排除故障并分析我的应用程序的内部工作原理 然而 在过去的几周里 我认为自从 Chrome 更新到 v70 以来 开发工具无法
  • 恢复从未付款过的用户的应用内购买

    我正在尝试在我的应用程序中测试应用程序内购买 当我与购买了应用程序内购买的测试用户恢复应用程序内购买时 一切正常 但是当我尝试与用户恢复应用内购买时didn t在我期望框架调用以下方法之前进行应用内购买 paymentQueue resto
  • 已执行最大重试次数。上传ipa问题

    我使用 build phonegap com 构建了 ipa 我试图将此 ipa 卸载到商店 但收到此错误 我解决了这个问题 安装xCode 4 并使用该xCode 4的版本应用程序加载器 这个问题得到解决
  • Firebase - 有没有办法查看有多少人安装了该应用程序?

    Parse 支持安装功能 我不确定 firebase 是否也支持 但在 Google 中挖掘了几个小时后 我无法找到有关如何在 Firebase 中查看 计算用户安装的重要信息 有没有办法计算 Firebase 中的用户安装量 或者甚至还有

随机推荐

  • 如何隐藏绘图中的数据间隙?

    我的数据集可能包含较大的数据间隙 并且我想绘制数据图表 而不用绘图自动用空格填充间隙 我的应用程序中的示例图表 Data date responses percentage 2017 02 13 4 0 6296 2017 02 14 1
  • 如何等待ajax调用返回

    我正在尝试使用 JQuery 尽管在执行进一步的代码之前我正在努力成功等待 ajax 调用成功 有没有办法等待ajax调用 我看过例子 但似乎只是盲目地等待 x 秒 谢谢 詹姆士 是的 您可以同步执行请求 var bodyContent a
  • AngularJS if 语句?

    所以我正在浏览 AngularJS 教程 我在控制器中定义了一个数组 当我循环 ng repeat feature name feature description 时 我通过调用返回数组中的不同点 我不明白的是 假设我在数组中有第三个点
  • 如何从 Instagram 网络浏览器中抓取关注者?

    谁能告诉我如何访问底层 URL 以查看给定用户的 Instagram 关注者 我可以使用 Instagram API 来完成此操作 但考虑到审批流程的待更改 我决定改用抓取 Instagram 网络浏览器允许您查看任何给定公共用户的关注者列
  • 使用 Backbone.js 将表单输入序列化为 JSON

    我正在开发 RESTful 应用程序 我在服务器端使用 Java 在前端使用 Backbone 两者将通过 JSON 进行通信 我的应用程序有很多表单 我想 将表单输入序列化为 JSON 将 JSON 发送到服务器 我的问题 将表单输入序列
  • 错误代码100在r中使用fitdist拟合exp分布

    我试图使我的数据符合指数分布 但出现以下错误 Error in fitdist x41 exp method mle the function mle failed to estimate the parameters with the e
  • 为什么从 .Net 应用程序调用 SQL 函数与在 Management Studio 中进行相同调用时存在性能差异

    我们在测试和开发环境中遇到一个问题 从 Net 应用程序调用时 函数有时运行速度非常慢 当我们直接从管理工作室调用这个函数时 它工作得很好 以下是它们在分析时的差异 从应用程序 中央处理器 906阅读数 61853写入 0持续时间 926
  • 使用 Ajax 从 DataTable 中删除一行

    我有一个 JSF 视图 它列出了 Primefaces 中集合中的项目DataTable 最右边的列包含删除按钮 当单击删除按钮时 应该进行 Ajax 调用 从会话变量中删除相应的项目Cart并就地更新视图 我希望请求和视图更改尽可能少 以
  • 无效查询。您不能使用多个“in”过滤器

    this ref collection users ref gt ref where uid1 in reciverId senderId where uid2 in reciverId senderId 给我错误 例如 查询无效 您不能使
  • 双向映射的最佳数据结构

    我想要一个从键映射到对象的数据结构 反之亦然 与仅在单个方向映射的 HashMap 不同 一个想法可能是将 HashMap 存储在其自身内部以进行反向查找 但这将是一种低效的方法 双向映射的最佳实现是什么 最简单的想法 包含 2 个映射的包
  • ActiveRecord::EagerLoadPolymorphicError:无法急切加载多态关联

    class Transaction lt ActiveRecord Base belongs to account polymorphic gt true end class Bankaccount lt ActiveRecord Base
  • 如何检测方向变化并更改布局?

    假设我有一个包含 2 行 2 列的网格 每个单元格内有许多控件 当应用程序更改为捕捉模式时 我的意思是屏幕的 1 3 我希望应用程序只有一列 2 行 并且只显示我决定的一些控件 我对此有什么控制权 thx 您应该在 xaml 中使用 Vis
  • 嵌套模块重新导入时出现 UnboundLocalError [重复]

    这个问题在这里已经有答案了 当我在 python 2 7 中重新导入已导入的模块时 出现 UnboundLocalError 一个最小的例子是 usr bin python import sys def foo print sys impo
  • 插入数据库日期时间字符串

    我有字符串04 04 2012 04 03 35 AM 如何将其转换并插入表中 字段类型为datetime 你需要使用STR TO DATE STR TO DATE 04 04 2012 04 03 35 AM d m Y r 或者 更好的
  • 如何将 Oracle 中的数据库模式导出到转储文件 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我在 Linux 计算机上安装了 Oracle 服务器上的数据库架构 我需要在转储文件中导出架构相关信息 这个怎么做 这取决于Oracle的哪个版本 旧版本需要exp 导出 新版
  • 如何生成随机字母数字字符串?

    如何在 C 中生成随机 8 个字符的字母数字字符串 我听说 LINQ 是新的黑色 所以这是我使用 LINQ 的尝试 private static Random random new Random public static string R
  • 如果“env”参数包含 unicode 对象,为什么 Popen 在 Windows 上失败?

    考虑这个例子 gt gt gt import subprocess as sp gt gt gt sp Popen notepad2 exe env PATH C users guillermo smallapps bin
  • Entity Framework + MySQL - 为什么性能这么糟糕?

    当我决定在我的新项目中使用 OR M 这次是 MySQL 的实体框架 时 我希望它能节省我的时间 但我似乎失败了 现在是第二次 执行这个简单的 SQL 查询 SELECT FROM POST ORDER BY addedOn DESC LI
  • ww SimpleDateFormat 的奇怪行为

    谁能解释为什么我在尝试解析日期时会得到这些值 我尝试了三种不同的输入 如下 1 2013年第三周 Date date new SimpleDateFormat ww yyyy parse 02 2013 Calendar cal Calen
  • J3k0 cordova-plugin-purchase 沙盒模式不起作用?

    好吧 我几乎已经完成了 Cordova 应用内购买 以使其在 Windows 沙箱模式下工作 我已经经历过this线程并尝试了所有可能的方法来实现它 但我做不到 我已经放置了in app purchase xml in www按照说明的文件