Android In-App Billing: пустые данные, полученные после покупки - PullRequest
5 голосов
/ 04 апреля 2011

Я пытаюсь реализовать биллинг в приложении.Я вошел в тестовую учетную запись, зарегистрированную в Маркете, и обновил свой открытый ключ в коде.Я могу купить один из идентификаторов тестового продукта.

Однако, похоже, что пустая подпись отправляется в намерении PURCHASE_STATE_CHANGED.Журнал выглядит так:

INFO/BillingReceiver(21437): notifyId: android.test.purchased
WARN/ActivityManager(2513): Duplicate finish request for HistoryRecord{47de4b38 com.android.vending/.billing.InAppBuyPageActivity}
INFO/BillingService(21437): handleCommand() action: com.app.GET_PURCHASE_INFORMATION
DEBUG/BillingService(21437): GetPurchaseInformation
ERROR/BillingService(21437): getPurchaseInformation received RESULT_OK
DEBUG/BillingService(21437): request id: 4241021538346688898
INFO/BillingService(21437): handleCommand() action: com.android.vending.billing.RESPONSE_CODE
DEBUG/BillingService(21437): RequestPurchase: RESULT_OK
INFO/BillingService(21437): handleCommand() action: com.android.vending.billing.PURCHASE_STATE_CHANGED
INFO/Security(21437): signedData: {"nonce":-3927284292945900504,"orders":[{"notificationId":"android.test.purchased","orderId":"transactionId.android.test.purchased","packageName":"com.app","productId":"android.test.purchased","purchaseTime":1301944310410,"purchaseState":0}]}
INFO/Security(21542): signature: 
INFO/Security(21437): Purchase not verified
INFO/Security(21437): Purchase count = 0
INFO/BillingService(21437): handleCommand() action: com.android.vending.billing.RESPONSE_CODE
DEBUG/BillingService(21437): GetPurchaseInformation: RESULT_OK

«Покупка не подтверждена» происходит из-за того, что код пропускает проверку подписи (потому что он пустой) и выбрасывает покупку данного продукта.

Любойидея?Я не вижу в документах нигде, что подпись может быть пустой или по какой причине.

FWIW, это происходит только на моем Samsung Vibrant Galaxy S (2.2.1).Он отлично работает на Droid (2.2.2).

РЕДАКТИРОВАТЬ: Когда я получаю намерение PURCHASE_STATE_CHANGED в результате операции транзакции восстановления, я получаю это вместо этого в журналах:

INFO/BillingService(24010): handleCommand() action: com.android.vending.billing.PURCHASE_STATE_CHANGED
ERROR/Security(24010): data is null

Это означает, что подписанная полезная нагрузка вообще не отправлялась.

РЕДАКТИРОВАТЬ: при дальнейшем тестировании кажется, что это происходит, когда версии загруженного приложения и установленного приложения различаются.http://code.google.com/p/marketbilling/issues/detail?id=15

1 Ответ

2 голосов
/ 13 апреля 2011

Я тоже столкнулся с этой проблемой. Я увеличил код версии apk, подписал его правильно, но затем получил только нулевые ответы от маркета.

Чтобы исправить это, я загрузил новый apk как черновик на рынок, затем получил действительные ответы.

...