user3466628
user3466628

Reputation: 1

google wallet subscription JWT 400 MERCHANT_ERROR

When I generate and execute a non-subscription JWT in the Google developer sandbox, everything executes successfully. However, whenever I attempt to execute a subscription JWT, I encounter a 400 / Bad Request / MERCHANT_ERROR message.

I have copied & pasted each of the resulting signed & encoded JWT into Google's JWT Decoder - which reports that each of the JWTs are valid, but only the non-subscription JWT executes successfully.

I've tried everything that I can think of. Any help would be most appreciated. Thanks.

The non-subscription JWT that succeeds

{
    "iss":"ourSellerIdentifier",
    "aud":"Google",
    "typ":"google/payments/inapp/item/v1",
    "iat":1395879238,
    "exp":1395879298,

    "request":{
                  "name":"Professional Edition",
                  "sellerData":"10955.373715.2.1",
                  "price":"39.95",
                  "currencyCode":"USD"
              }
}

The subscription JWT that generates an error

{
    "iss":"ourSellerIdentifier",
    "aud":"Google",
    "typ":"google/payments/inapp/item/v1",
    "iat":1395880013,
    "exp":1395880073,

    "request":{
                 "name":"Professional Edition",
                 "sellerData":"10955.373715.2.1",

                 "recurrence":{
                                 "price":"39.95",
                                 "currencyCode":"USD",
                                 "frequency":"monthly"
                              }
              }
} 

Upvotes: 0

Views: 158

Answers (1)

EdSF
EdSF

Reputation: 12349

The typ field should be google/payments/inapp/subscription/v1 for subscriptions - re: "subscription" (vs "item")

Hth....

Upvotes: 1

Related Questions