Google Wallet Subscriptions Error 500

2019-08-12 06:05发布

问题:

i have implemented the Subscriptions flow using the java library jsontoken, but am getting an error 500. happen in the sandox and production. any idea why it is?

this is the error :

POST https://checkout.google.com/inapp/api/v1/purchase_options 500 (Internal Server Error)

this is the code:

Calendar cal = Calendar.getInstance();
HmacSHA256Signer signer = new HmacSHA256Signer(ISSUER, null, SIGNING_KEY.getBytes());

JsonToken token = new JsonToken(signer);
token.setAudience("Google");
token.setParam("typ", "google/payments/inapp/subscription/v1");
token.setIssuedAt(new Instant(cal.getTimeInMillis()));
token.setExpiration(new Instant(cal.getTimeInMillis() + 60000L));

long prorated =cal.getTimeInMillis() + 2592000000L;

JsonObject request = new JsonObject();
      request.addProperty("name", "Piece of Cake");
      request.addProperty("description", "Virtual chocolate cake to fill your virtual tummy");
      request.addProperty("sellerData", "user_id:1224245,offer_code:3098576987,affiliate:aksdfbovu9j");
      request.addProperty("initialPayment", "{\"price\" : \"1.49\",\"currencyCode\" : \"USD\",\"paymentType\" : \"prorated\",}");
      request.addProperty("recurrence", "{\"price\" : \"4.99\",\"currencyCode\" : \"USD\",\"startTime\" : \""+prorated+"\",\"frequency\" : \"monthly\",\"numRecurrences\" : \"12\",}");

 JsonObject payload = token.getPayloadAsJsonObject();
      payload.add("request", request);
 token.serializeAndSign();