Я играл с приложением Dungeons, а также с моим собственным платежным кодом, и у меня почти все работает, кроме одной странности.
Кажется, что что бы я ни делал, я не могу заставить DEVELOPER_PAYLOAD отображаться в подписанном ответе JSON. Если я правильно читаю, в документации, кажется, написано, что я должен увидеть developer_payload в ответе рынка JSON. Приложение Dungeons, похоже, считает, что оно также должно видеть developer_payload в json.
Я не заставил его работать в моем коде, и, похоже, он не работает и в примере Dungeons на моем телефоне.
Вот несколько фрагментов моего кода:
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 получил signedData: {"nonce": 9005407554096378381, "orders": [{"notificationId": "android.test.purchased", "orderId": "transactionId.android.test.purchased", "packageName": "com.mypackage", " productId ":" android.test.purchased "," PurchaseTime ": 1305429187752," PurchaseState ": 0}]}
Заранее спасибо!
РЕДАКТИРОВАТЬ: Я наконец понял это. Оказывается, что developer_payload не проходит, если вы используете какой-либо из идентификаторов тестовых элементов Android. При покупке приложения необходимо использовать настоящие предметы.