问题标签 [in-app-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.

0 投票
2 回答
5849 浏览

iphone - 自定义应用内计费以避免 Android/iTunes 交易费用

我们正计划为 iPhone 和 Android 设备开发新的应用程序。该应用程序将在两个市场(Android Market 和 Apple 的 App Store)上发布,并且可以免费下载。然而,该应用程序将有一些可以由用户购买的项目。最简单的方法是将每个版本与其相应的计费系统集成:Android In-App Billing 和 Apple iTunes 计费系统。

有没有办法避免计费系统收取 30% 的交易费?开发人员可以为其应用程序使用自定义的应用内计费系统吗?在使用其他应用内账单系统以避免交易费用时,是否有适用于 Android 或 iPhone 的免责声明政策?开发人员在其应用程序中提供应用内商品购买的选项有哪些?

非常感谢!

0 投票
1 回答
1754 浏览

java - Android:无法将新的应用内产品添加到应用程序...?

我正在制作一款带有应用内购买功能的游戏以获得额外关卡。我已经实现了所有必要的代码,并且测试购买工作完美。但是,当我将产品添加到我的(未发布的)应用程序时,我在 android 开发人员仪表板上收到以下消息:

“无法添加新的应用内商品,因为当前应用版本没有使用 BILLING 权限。”

这些是我拥有的权限:

所以我不明白为什么我会收到这条消息。任何帮助将不胜感激,我正试图在本周末发布游戏,这是我的最后一个障碍。

在此先感谢,请放心,我会接受答案,我知道这里的人有时会担心。

0 投票
1 回答
1365 浏览

android - Android Inapp 计费示例

我正在尝试运行 Android Inapp Billing Example,但显然做错了什么,因为它没有按预期工作。

关于错误的最佳线索是,当市场计费弹出窗口显示标题为“示例商家的示例应用程序标题”时,由于我在代码或开发者控制台中都没有找到该文本,我认为我的应用程序正在尝试连接到其他人的帐户进行付款。

任何想法有什么问题,我已按照说明中的说明将我的“密钥”复制到应用程序中。

提前感谢罗兰

0 投票
3 回答
2608 浏览

android - 实体商品的应用内购买 - 禁止还是不推荐?

是否禁止或不推荐通过 Android 应用内购买销售实物商品?

我知道运输存在问题,但是很容易使最终价格因运输成本而增加。如果没有运费怎么办?

请与我分享您的经验。

提前致谢

0 投票
1 回答
3991 浏览

android - 在 App BIlling 中出现 Pending Intents 和切换活动的问题

好的,所以我这几天一直在尝试解决这个问题,而且我不是来这里找人为我做我的工作,因为我一直在排除故障并修复了 LogCat 中的每条错误消息。我正在使用 Andengine 开发 Android 游戏(这可能是问题的一部分,因此熟悉它会有所帮助)。我没有做任何太花哨的事情,我的游戏活动都是单一场景,没有任何物理或类似的东西,只是一堆精灵和纹理。我还在游戏中的所有其他活动中使用了 Andengine,因为我发现它是一种非常简单的方法来设置具有图形吸引力的屏幕。我的应用内商店就是这样一个屏幕,用户可以在其中购买关卡包和新精灵。这一切的计费部分都很好,购买进入市场,那里没有什么太复杂的......

当用户点击购买时,市场屏幕会弹出并加载他们选择的产品(这些是真实的产品,不是安卓测试,虽然游戏没有发布)。市场屏幕会弹出当前活动,无论我是使用“Android 2.0”实现,它是游戏堆栈的一部分,还是我使用“Android 1.6”实现,它是它自己的堆栈的一部分。我更喜欢使用 Android 2.0 实现,但如果我只能让 1.6 工作,我会接受。因此,无论如何,当用户使用后退按钮取消购买或使用信用卡完成购买时,就会出现问题,两者都会导致市场屏幕消失并且应用程序开始一个只是黑屏的新活动(最终时间并导致强制关闭)。购买成功,但用户没有得到产品,因为在我们获取代码以更改用户在游戏中的项目之前,游戏强制退出。现在对于一些代码,我使用了本教程 (http://www.anddev.org/advanced-tutorials-f21/simple-inapp-billing-payment-t52060.html),没有做任何更改。BillingHelper 类是最重要的,因为它包含 requestPurchase() 方法和 startBuyPageActivity() 方法。我从我的 StoreFront 活动中调用请求购买,如下所示:BillingHelper 类是最重要的,因为它包含 requestPurchase() 方法和 startBuyPageActivity() 方法。我从我的 StoreFront 活动中调用请求购买,如下所示:BillingHelper 类是最重要的,因为它包含 requestPurchase() 方法和 startBuyPageActivity() 方法。我从我的 StoreFront 活动中调用请求购买,如下所示:

在 StoreFront 的 onCreate 中,我有这些东西(正如 tut 所说的那样):

...

所以我认为问题不在于那里。下面是 BillingHelper 的相关部分

我尝试从 StoreFront 调用各种参数,例如“ActivityContext”,例如 StoreFront.this、getApplicationContext()、其他位置的静态上下文存储、存储在其他位置的静态 Activity、getBaseContext() 任何我能想到的...

这是其他相关活动

没什么特别的,我只是希望用户在购买商品或在此过程中按回时返回到我的任何各种活动(最好是 StoreFront)。请帮忙!

编辑:我想要任何可能的解决方案,以在购买完成后允许应用内计费返回到我的应用程序,即使是最混乱的解决方案。

编辑

一个 logcat 和方法调用什么问题:

此外,我已经在另一部手机上对此进行了测试(我正在与之合作的另一位开发人员,他实际上可以在其中购买东西,但仍然会出现黑屏错误)并且他也从未收到您在评论中提到的处理程序消息

编辑:如果我不得不猜测错误在哪里,我会说是这个

请注意,Andengine 库期望中断异常,因此这是一个红鲱鱼。

另外(我希望这里允许这样做)我将提供贝宝奖励以获得解决方案。如果这违反了 SO 的条款,那么只需删除此行,请不要关闭此问题。

0 投票
2 回答
4573 浏览

android - 使用 Phonegap 进行 Android 应用内购买

有没有办法使用 Phonegap 实现 Android 应用内购买?我找不到任何关于这个问题的信息。例如,我可以使用 InAppPurchaseManager Phonegap 插件在 iOS 上进行 IAP。但是没有适用于Android的相关插件。

如果由于某种原因不可能,您能否建议任何其他方式为 Phonegap Android 应用程序实施即时(或可再生)支付。我知道有一个适用于 Android 的 PayPal API,但由于 Phonegap,我无法使用它......

我能看到的唯一方法是将 PayPal API 用于网站(并且我有可以实现它的网站),但我认为这是一种糟糕的用户体验。

请帮忙!有什么建议么!?谢谢。

0 投票
1 回答
1510 浏览

android - 激活应用内计费后 OpenGL 失去表面

这是我在这里发布的一个问题的衍生问题: In App BIlling Trouble with Pending Intents and Switching Activities

我现在遇到的问题与该问题的所有信息直接相关,但很可能涉及完全不同的主题(OpenGL),因此需要这个新问题。但请参阅那里发布的代码以获取信息。

基本问题是这样的:

我有一个带有谷歌应用内计费的 Andengine 游戏。当用户单击“购买”按钮时,您会从市场中获得一个处理您的交易的漂亮小弹出窗口。这个弹出窗口效果很好,当用户提供正确的信用卡信息时,他们会为交易收取费用并且我会得到一些钱。可悲的是,在完成交易后(在这种情况下,完成要​​么意味着收费,要么决定不购买,就市场弹出窗口而言,无论哪种方式他们都完成了操作),他们会被带到一个黑屏,在游戏之前一直保持黑屏超时或他们强制退出它。

通过分析 LogCat,我相信我已经将问题缩小到我的 Andengine 活动丢失背后的 OpenGL 表面,因此游戏无法加载任何相关资源。我对OpenGL一无所知,所以我不知道如何解决这个问题。我想要的只是在应用内计费启动的pendingintent 完成其业务后恢复或重新启动简单的Andengine 活动。这就是我认为导致错误的原因,尽管完整的 LogCat 转储在上面链接的问题中:

如果您能提供帮助,请告诉我,您很可能需要在 Android 上使用 OpenGL 的经验,最好是 Andengine 的基本知识(或至少它如何与 OpenGL 一起工作)。我没有对图形做任何太复杂的事情,所以这不是问题,我希望恢复的屏幕(我的“店面”)仅由各种精灵和少量文本组成。

谢谢

0 投票
1 回答
1202 浏览

android - Android In App Billing:即使在成功购买后,Receiver 的 onReceive 也不会被调用

我不确定要放什么代码,但我的应用程序中有一个有效的应用程序内购买设置(从某种意义上说,正确的金额和项目计入我的帐户)但问题是更改从未显示在用户端,当他们购买商品时,接收者永远不会收到广播,这将允许我运行在本地保存购买的代码。

我从这里复制了大部分代码:

简单的应用计费支付

所以我不知道问题是什么。没有冻结,一切正常,只是从不运行 BillingReceiver 的 onReceive() ......其他人有这个吗?

0 投票
3 回答
4203 浏览

android - Android 应用内结算项目不可用

我正在 Android 中实现应用内计费,这让我很头疼。

当我尝试从应用内商店购买我的产品时,砰的一声:“项目不可用”,
但如果我尝试android_test_purchased一切都很好。

我列出了导致此问题的“所有”可能原因并检查了每个原因。
这是列表:

  • Security.java,公钥应与 Android Market 帐户中的公钥相同

  • 设备中的市场应用程序版本应为2.3.4或更高

  • 您用于测试的设备必须运行标准版本Android 1.6或更高版本

  • 正在测试的应用程序必须draft在 Android 市场中以 , 的形式上传,并且必须经过签名

  • 设备中安装的应用程序必须与作为草稿上传到市场的应用程序相同

  • 设备必须有一个something@gmail.com帐户作为其主帐户,并且该帐户应定义为 Android 市场中的测试帐户

  • 安卓市场的应用内计费产品必须与应用中显示的产品具有相同的ID

  • Android 市场的应用内商品必须发布

对此列表的任何建议和修改都非常感谢。

谢谢

0 投票
1 回答
1117 浏览

android - CONFIRM_NOTIFICATIONS 消息给出 SERVICE_UNAVAILABLE 结果

我们在 Android 的应用内购买消息流的最后部分看到“服务不可用”错误,我们不知道为什么。

我们已经实现了 Android 的应用内计费,并且一切运行良好,我们几乎可以通过消息序列获得所有信息:

1) 我们发送 REQUEST_PURCHASE 消息并返回 RESPONSE_CODE 为 0

2) 我们收到 com.android.vending.billing.IN_APP_NOTIFY

3) 我们发送 GET_PURCHASE_INFORMATION 消息并返回 RESPONSE_CODE 0

4) 我们收到 com.android.vending.billing.PURCHASE_STATE_CHANGED

5)我们发送的是CONFIRM_NOTIFICATIONS。

我们查看了 Google 提供的示例应用程序 (com.android.vending.billing),它表示我们必须在 CONFIRM_NOTIFICATIONS 消息中提供的只是通知 ID 的字符串数组。我们从最后一条消息收到的响应是 BroadcastReceiver 中的 com.android.vending.billing.RESPONSE_CODE 消息,其中包含响应代码值 2(映射到“服务不可用”)。为什么我们会从最后一条消息中收到错误消息?我们正在使用静态项目 ID android.test.purchased,如果这有影响的话。

Android 日志消息是:

06-29 14:20:12.054:调试/iapReceive(21391):通知,notificationId android.test.purchased

06-29 14:20:12.054: DEBUG/iapSend(21391): 发送带有notificationId android.test.purchased 的GET_PURCHASE_INFORMATION

06-29 14:20:13.994: DEBUG/iapReceive(21391): inapp_signed_data 是 {"nonce":5454,"orders":[{"notificationId":"android.test.purchased","orderId":"transactionId. android.test.purchased","packageName":"com.shinyandroid","productId":"android.test.purchased","purchaseTime":1309382399381,"purchaseState":0}]}

06-29 14:20:13.994: DEBUG/iapReceive(21391): 购买状态改变,notificationId android.test.purchased,SKU android.test.purchased

06-29 14:20:13.994: DEBUG/iapSend(21391): 发送带有notificationId android.test.purchased 的CONFIRM_NOTIFICATIONS

06-29 14:20:14.845: DEBUG/vending(18344): [51] RequestRunnable.run(): Got ApiException from async request: Error from backend. 请求=com.android.vending.model.AckNotificationsRequest,响应=BAD_REQUEST

06-29 14:20:16.104: DEBUG/vending(18344): [51] RequestRunnable.run(): GotApiException from async request: Error from backend. 请求=com.android.vending.model.AckNotificationsRequest,响应=BAD_REQUEST

06-29 14:20:18.274: DEBUG/vending(18344): [51] RequestRunnable.run(): Got ApiException from async request: Error from backend. 请求=com.android.vending.model.AckNotificationsRequest,响应=BAD_REQUEST

06-29 14:20:20.824: DEBUG/vending(18344): [51] RequestRunnable.run(): Got ApiException from async request: Error from backend. 请求=com.android.vending.model.AckNotificationsRequest,响应=BAD_REQUEST

06-29 14:20:26.854: DEBUG/vending(18344): [51] RequestRunnable.run(): Got ApiException from async request: Error from backend. 请求=com.android.vending.model.AckNotificationsRequest,响应=BAD_REQUEST

06-29 14:20:26.854: WARN/vending(18344): [51] AsynchInAppAckNotifications.onException(): InAppAckNotificationsRequest 上的服务器错误: com.android.vending.api.ApiException: 来自后端的错误。请求=com.android.vending.model.AckNotificationsRequest,响应=BAD_REQUEST

06-29 14:20:26.904:调试/iapReceive(21391):异步响应代码,requestId 5225550415890630760,responseCodeIndex 2