Search code examples
javarazorpay

Razorpay's Payment object do not have any fields


I just started going through Razorpay documentation. As per their document their Payment object has the structure

{
  "id": "pay_29QQoUBi66xm2f",
  "entity": "payment",
  "amount": 5000,
  "currency": "INR",
  "status": "captured",
  "method": "card",
  "description": "Payment for adidas shoes",
  "amount_refunded": 0,
  "refund_status": null,
  "email": "[email protected]",
  "contact": "9364591752",
  "notes": {},
  "fee": 1145,
  "tax": 145,
  "error_code": null,
  "error_description": null,
  "created_at": 1400826750
}

But when I imported their object import com.razorpay.Payment and clicked on that class in my code editor I found no fields.

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.razorpay;

import org.json.JSONObject;

public class Payment extends Entity {
    public Payment(JSONObject jsonObject) {
        super(jsonObject);
    }
}

There are no fields and getters. So How can I map the Payment object contents to my custom class? Is my understanding wrong?

Thank you.


Solution

  • You use the get() method, which is defined in the Entity class, to get the values you want. See the documentation of Razorpay Java SDK:

    Payment payment = razorpayClient.Payments.fetch("payment_id");
    // The the Entity.get("attribute_key") method has flexible return types depending on the attribute
    int amount = payment.get("amount");
    String id = payment.get("id");
    Date createdAt = payment.get("created_at");