| Line 33... |
Line 33... |
| 33 |
private String RAZORPAYX_ACCOUNT;
|
33 |
private String RAZORPAYX_ACCOUNT;
|
| 34 |
|
34 |
|
| 35 |
@Autowired
|
35 |
@Autowired
|
| 36 |
private RestClient restClient; // same utility you used for Knowlarity
|
36 |
private RestClient restClient; // same utility you used for Knowlarity
|
| 37 |
|
37 |
|
| 38 |
public String createPayout(String fundAccountId, Double amount, String currency) throws Exception {
|
38 |
public String createPayout(String fundAccountId, Double amount,String idempotencyKey, String currency) throws Exception {
|
| 39 |
JSONObject payload = new JSONObject();
|
39 |
JSONObject payload = new JSONObject();
|
| 40 |
payload.put("account_number", RAZORPAYX_ACCOUNT); // RazorpayX virtual account
|
40 |
payload.put("account_number", RAZORPAYX_ACCOUNT); // RazorpayX virtual account
|
| 41 |
payload.put("fund_account_id", fundAccountId); // partner fund account id
|
41 |
payload.put("fund_account_id", fundAccountId); // partner fund account id
|
| 42 |
payload.put("amount", (int) (amount * 100)); // amount in paise
|
42 |
payload.put("amount", (int) (amount * 100)); // amount in paise
|
| 43 |
payload.put("currency", currency);
|
43 |
payload.put("currency", currency);
|
| 44 |
payload.put("mode", "IMPS"); // or NEFT, UPI
|
44 |
payload.put("mode", "IMPS"); // or NEFT, UPI
|
| 45 |
payload.put("purpose", "payout");
|
45 |
payload.put("purpose", "payout");
|
| 46 |
payload.put("queue_if_low_balance", true);
|
46 |
payload.put("queue_if_low_balance", true);
|
| 47 |
|
47 |
|
| 48 |
try {
|
48 |
try {
|
| - |
|
49 |
Map<String, String> headers = getAuthHeaders();
|
| - |
|
50 |
headers.put("X-Payout-Idempotency", idempotencyKey);
|
| 49 |
LOGGER.info("Sending RazorpayX payout request: {}", payload);
|
51 |
LOGGER.info("Sending RazorpayX payout request: {}", payload);
|
| 50 |
String url = BASE_URL + "/payouts";
|
52 |
String url = BASE_URL + "/payouts";
|
| 51 |
String response = restClient.post(url, payload.toString(), getAuthHeaders());
|
53 |
String response = restClient.post(url, payload.toString(), getAuthHeaders());
|
| 52 |
LOGGER.info("RazorpayX payout response: {}", response);
|
54 |
LOGGER.info("RazorpayX payout response: {}", response);
|
| 53 |
|
55 |
|