胸怀万里世界, 放眼无限未来。这篇文章主要讲述Android InApp购买 - 如何处理待处理状态?相关的知识,希望能为你提供帮助。
我正在将android In-App购买与Android Native应用程序集成。我使用以下代码启动In-App购买意图!
Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(),”product_sku”, "inapp",”Some Developer Payload”);
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(),REQUEST_CODE, new Intent(),Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
以上代码正在使用并打开Goog??le Play以进行应用内购买。我重写了onActivityResult以获取应用程序内购买的结果(以下是代码)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {if (resultCode == RESULT_OK) {
try {
final JSONObject jo = new JSONObject(purchaseData);
String orderId = jo.getString("orderId");
String productId = jo.getString("productId");
String state = String.valueOf(jo.getInt("purchaseState"));
//POST purchase result to my server for my record!//Finally Consume the product
} catch (JSONException e) {
e.printStackTrace();
}
} }
}
【Android InApp购买 - 如何处理待处理状态()】以下是我们从InApp购买中收到的回复
'{
"orderId":"12999763169054705758.1371079406387615",
"packageName":"com.example.app",
"productId":"exampleSku",
"purchaseTime":1345678900000,
"purchaseState":0,
"developerPayload":"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ",
"purchaseToken":"rojeslcdyyiapnqcynkjyyjh"
}'
我的问题是如何识别应用内购买交易处于“待定”状态,因为“purchaseState”(JSON中的整数值)只有三个值“已购买”,“已取消”和“已退款”。
我来自印度,谷歌钱包在inapp购买完成后立即接受任何交易。
它始终处于“待定”状态,然后最多需要48小时才能接受或拒绝交易!
我想只允许我的客户在Google waltet成功付款后才能使用In app购买的产品。
我遇到了我的一个客户从我的应用程序购买了inapp产品,但不知何故他们的数据没有在服务器上发布。客户告诉我,该购买交易最初处于待处理状态,并在两天后完成,即使我在我的商家帐户中获得了该付款,因此我得出结论:Android没有响应,购买的onActivityResult中的resultCode == RESULT_OK正在等待处理。
所以,如果有人遇到同样的问题,那么请向我解释处理待处理状态的解决方案或流程!我是否必须将APN用于待处理状态?但我需要将待处理的状态订单详细信息存储在我的服务器上!提前致谢!
答案我知道很久以前就问过这个问题了。但我面临同样的问题(巴西市场的应用程序)。
我注意到立即处理的购买,一切正常。
但是,有些购买会进入“待定付款”状态,最多可能需要48小时才能更改状态。但是,我的服务器永远不会被调用 - 正如OP所说,我怀疑谷歌播放服务器返回不同的状态(除了RESULT_OK),我的应用程序没有捕获它。然后,我的用户收费,但无法访问PREMIUM功能 - 因为我的服务器从未收到通知。
因此,截至2018年,我读到我们可能有另一种选择。以下链接提供了有关如何处理订阅的一些信息
https://developer.android.com/google/play/billing/billing_subscriptions
..并指出以下内容:
https://developer.android.com/google/play/billing/realtime_developer_notifications
“实时开发者通知”
这样,每次用户订阅状态发生变化时,Google Play都会向您的服务器发送通知。因此,如果您的用户付款需要48小时才能完成,您的服务器将收到通知,您可以将用户PREMIUM或您需要的任何逻辑。
希望能帮助到你。
推荐阅读
- 我是否可以为我的iPhone App客户提供推荐信用于注册新订阅客户
- SKPaymentTransactionObserver`应用内购买无法在iTunes连接上的App Store上推广,但代理实施和测试
- Android(在App Purchased list queryInventoryAsync中,Google返回错误的购买列表)
- iTunes Connect In App Purchase免费试用期限何去()
- mobile-buy-sdk-android失败,出现错误com.shopify.buy3.GraphHttpError
- 使用InAppBillingPlugin恢复购买
- 在App Purchase中(需要登录[环境:沙箱])
- Android应用内结算项目价格
- 将Android应用程序设为试用版,然后进行计费以解锁应用程序的最佳策略是什么()