我一直在玩地下城应用程序以及我自己的计费代码,除了一个奇怪之外,几乎所有东西都可以正常工作。
似乎无论我做什么,我都无法让 DEVELOPER_PAYLOAD 显示在 JSON 签名响应中。如果我没看错,文档似乎说我应该在 JSON 市场响应中看到 developer_payload。地下城应用程序似乎认为它也应该在 json 中看到 developer_payload。
我还没有让它在我的代码中工作,而且它似乎在我的手机上的地下城示例中也不起作用。
以下是我的一些代码片段:
Bundle request = makeRequestBundle("REQUEST_PURCHASE");
request.putString(C.DEVELOPER_PAYLOAD, "testing 123");
C.DEVELOPER_PAYLOAD 是:
public static final String DEVELOPER_PAYLOAD = "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 不会通过。您必须使用真实的应用内购买项目。