Question

Having trouble with the PURCHASE_CANCELED error in Wallet for Digital.

A. I can successfully round-trip JWTs between

https://sandbox.google.com/checkout/customer/gadget/inapp/demo.html

and

https://developers.google.com/commerce/wallet/digital/docs/jwtdecoder

...of course I can, they're both Google tools.

B. I can successfully pass from PyJWT to the decoder, seems no info changes.

C. I can successfully pass from the demo to PyJWT, seems no info changes.

D. The request in the .buy() failure callback is correct.

This is extremely frustrating, to have no feedback from Google Wallet when it does PURCHASE_CANCELED.

  • I cannot make identical JWTs between PyJWT and the demo encoder. Even with exactly similar data in exactly the same order, the result varies at the end of the long string. Does this matter?

  • Is there any way of independently generating the signature (encoded) to verify against?

  • Does the order of keys in the object to encode matter?

Edit:

  • In the Order History, Wallet says "Google has sent the customer an order confirmation email." No emails arrive to my test buyer.

  • Also in the Order History, Wallet says "The customer's credit card was authorized for $3.00, and passed all risk checks". Looks promising.

  • I remember reading that, in the Sandbox, no banking or tax info is necessary. However, Google Books held me up for months on "selling" a $0 (free) book in Google Play due to lack of banking/tax information; without it, the book never made it through the approval process, no other explanation given. Does the Sandbox need even fake/placeholder information to allow .buy() transactions to proceed?

Was it helpful?

Solution

Flow is now working, postbacks are appearing at the server.

Estimated delay was 5-6 hours between sandbox setup and start of postback activity.

No changes made within sandbox tax/banking info.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top