问题标签 [billing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何修改示例应用内计费应用以启用付费功能?
假设我提供二合一应用程序:免费版和付费版。如果用户付费,那么他将获得应用程序中可用的附加功能。
为了简化任务和理解,我采用了示例应用程序。然后,我在主屏幕上又添加了一个按钮(这是我们的“付费”功能)——这个按钮默认是禁用的。如果用户为 Potion 付费(在示例应用程序中),则应启用此按钮。
所以,我有以下问题:
- 用户付费后,应在示例应用中修改哪些功能以启用按钮?为了进一步简化任务,我们可以假设用户只能购买 Potion,仅此而已。看起来仅仅添加是不够
myButton.setEnabled(true)
的onPurchaseStateChange / if (purchaseState == PurchaseState.PURCHASED)
。此外,如果用户付费,我需要在应用程序启动后启用此按钮。我应该在里面做restoreDatabase
吗?我也需要打电话给这个restoreDatabase
吗onStart()
? - 同样的问题是关于按钮禁用 - 我应该在哪里执行此操作?
- 启用按钮后,如果用户按下它,我需要验证用户是否真的为应用程序付费(不要仅仅依赖数据库值) - 看起来我应该调用
RESTORE_TRANSACTIONS
. 然后根据结果显示警告和禁用按钮,或允许进一步的操作。
android - Android:应用内商品 ID
我的应用内商品 ID 应该是什么样子?如果我的应用程序 ID 看起来像com.example.test,那么我可以将产品 ID 定义为item吗?还是应该是com.example.test.item?
mysql - 如何使用计费的 SQL 查询计算通话费用
有没有人知道如何从 sql 中的通话记录表和资费表计算通话费用并将输出放入新表中???
几秒钟或几分钟的关税费率。
你能提供一些示例查询吗?
这是我用来创建具有字段名称的表的代码:
对于关税税率,高峰和非高峰我有:
我想将呼叫成本的输出制成一个新表,其中包含呼叫者 ID、来源、目的地、呼叫持续时间、资费和呼叫成本。
我还应该创建另一个包含用户列表的表吗?以及如何在周末向非高峰期收费?
android - 只允许一个 BroadcastReceiver 接收 Android 应用内计费的计费广播?
我已经让 Google 的示例应用内计费应用程序 (Dungeons) 运行良好。但是,我正在尝试为我正在编写的应用程序注册第二个计费接收方,但我无法这样做。似乎只有我的 AndroidManifest.xml 中声明的第一个接收器是接收广播的接收器,但第一个接收器之后的任何接收器都不会接收广播。在运行时,我已经通过使用 isOrderedBroadcast() 确认广播不是有序广播,所以我并不是在某处中止广播(只能中止有序广播)。对此的任何帮助将不胜感激。
android - Android In App Billing DEVELOPER_PAYLOAD 未通过
我一直在玩地下城应用程序以及我自己的计费代码,除了一个奇怪之外,几乎所有东西都可以正常工作。
似乎无论我做什么,我都无法让 DEVELOPER_PAYLOAD 显示在 JSON 签名响应中。如果我没看错,文档似乎说我应该在 JSON 市场响应中看到 developer_payload。地下城应用程序似乎认为它也应该在 json 中看到 developer_payload。
我还没有让它在我的代码中工作,而且它似乎在我的手机上的地下城示例中也不起作用。
以下是我的一些代码片段:
C.DEVELOPER_PAYLOAD 是:
这是我在购买状态下看到的改变响应
05-14 20:13:08.360:INFO/BillingService(715):purchaseStateChanged 得到了签名数据:{"nonce":9005407554096378381,"orders":[{"notificationId":"android.test.purchased","orderId":" transactionId.android.test.purchased","packageName":"com.mypackage","productId":"android.test.purchased","purchaseTime":1305429187752,"purchaseState":0}]}
提前致谢!
编辑:我终于想通了。事实证明,如果您使用任何测试 android 项目 ID,则 developer_payload 不会通过。您必须使用真实的应用内购买项目。
android - 如何安全地管理外部服务器上的应用内结算交易?
我正在尝试使用带有应用内计费的“托管”购买来实现一个系统来升级/解锁我的应用的各种功能,但由于缺乏深入的文档或示例,我陷入了困境。
我的应用程序的目的是从我自己的服务器检索/解析和显示数据, http: //developer.android.com/guide/market/billing/billing_best_practices.html上的文档指出:
如果您使用远程服务器来交付或管理内容,请让您的应用程序在用户访问内容时验证解锁内容的购买状态。
我的问题是,就实际工作流程而言,最好的方法是什么?
据我所知,成功购买后,我会将购买信息存储在我的服务器以及本地应用程序中。当应用程序运行时,我会将订单 ID 发送到我的服务器,服务器会检查订单是否有效(首先检查订单是否存在于我服务器的数据库中,其次检查我是否没有手动撤销订单不管什么原因)。
如果验证通过,服务器将向应用程序发送请求的功能已“许可”的响应,并且应用程序将向用户提供解锁的功能/内容。
我可以看到的明显问题是:
- root 用户可以轻松地更改本地应用程序的 SQLITE 数据库(或我用来存储订单信息的任何其他方法)以注入有效的订单 ID。
- 如果网络访问中断,或者我的服务器出现故障,我仍然希望应用程序能够使用用户购买的所有功能运行(使用缓存数据)。
我可以看到解决第一个问题的潜在方法包括发送某种设备标识符和验证请求,并在我的服务器端对其进行监控——如果大量设备在短时间内访问订单,则撤销订单。
对于第二个问题,我想不出一个合适的解决方案。我最初以为每次验证成功时,都会存储这次验证发生的时间。然后,应用程序将在最后一次成功验证后继续使用解锁功能运行 48 小时。问题是,我怎样才能安全地存储这个时间值?同样,root 用户可以简单地更改值,并且应用程序将变得不明智。
有没有人设计了一个基于服务器的系统来管理应用内计费购买并且可以提供一些建议?
windows - 如何查找 Windows Azure 的应计帐单费用
有什么方法或地方可以查明您的 Windows Azure 帐户产生了多少使用量和最终成本?我对使用细节非常感兴趣,这样我就可以估算出我们在测试中的应用程序的成本,并尝试预测何时扩展它。
amazon-web-services - 亚马逊 AWS 按使用量计费客户
假设您在 aws 上有一个应用程序,并且您想为客户使用的每 GB 存储空间收费。如果您为此使用自己的 aws 帐户(客户没有亚马逊 aws 帐户),有没有办法从亚马逊获取此信息或自行收集。
例如:月底花费了 10GB。必须充电。如何弄清楚 5 个客户中的每一个客户需要支付什么费用?
亚马逊可以提供这个信息吗?如果亚马逊不能提供这个,怎么办?存储/带宽和处理时间的相同问题。
基本上做亚马逊做的事情:P
即使这很难,如何确保如果您销售 1gb / 月的包裹(存储示例),客户不会超过。处理这个的任何模式(如我可以使用的代码模式)?
php - 每月自动生成发票的解决方案?
每两周自动生成发票的解决方案是什么?克朗乔布斯?
我在 tbl_order 表中有多个订单,我想每 2 周生成一张发票(用于计费)。
2 月的发票日期为:2 月 1 日至 15 日、2 月 16 日至 28 日
3 月:3 月 1 日至 15 日、3 月 16 日至 31 日
例如,在 3 月 1 日至 15 日之间生成发票tbl_order.ShopID = 5
如果使用 Cron Jobs / PHP 或替代解决方案,如何做到这一点?
php - 生成发票
我想创建每 2 周的发票。一张发票可以有 1 到 15 和 16 到 31 之间的 1 个或多个订单order_date
。这样做的方法是什么?
假设表格设计为:
第一个解决方案:
每 2 周通过 Crob Job 运行。它扫描订单表(找到介于 1 到 15 或 16 到 31 之间且状态 = 1 的 order_date),然后添加到发票表中,然后更新 order.invoice_id
如果今天的日期是 2010 年 6 月 11 日,那么它将在发票表中插入一行,并且 invoice_date 将是 2010 年 6 月 1 日。PHP 将在添加行之前检查 invoice_date,如果它已经存在,那么它将更新 order.invoice_id。
第二种解决方案:
从后端手动将 order.status 更改为 1,然后它将执行与“第一个解决方案”类似的功能(除了 Cron 作业)
伪代码:
哪个会更好,或者您有其他更好的解决方案?