Balance Inquiry
# Note: If you have already integrated with other interfaces
before March 18, 2024, please make sure to update the signature utility class!!!
before March 18, 2024, please make sure to update the signature utility class!!!
# Request URL
- POST https://test2-openapi.91fafafa.com/api/india/balance/query
# Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
appId | string | Y | MerchantappId | B2iwKFIM4tvo |
merchantId | string | Y | MerchantId | CH10001165 |
timestamp | long | Y | Timestamp(milliseconds) | 1710437546000 |
sign | string | Y | sign | wKiDE42Ed/osErh1GrVtC TtwqBfjO6TJmbN7fWo1nK GF0M7QEwoEGsZzNCF20Ks 6q7MTpL2TwaQrYfjwxQ4n zvYNHG8GfjkUMon15ouVd dEL8G2Ajq77NfZ8Vm/SXw ore02kU9wMoJKucU7MBER m2RIfy1vc2gkHwlGBftLR /fuf4ucdmYKWl5ATdH44w 5vUxq5L8tfEf6pVBEDOS5 ragisBODABHRrxkRg++i1 4rMc+9SgEa80UmzdQi6YT tCLIWUKm5PjtkxGZbXYbS T0EWo5NqrGPYwZHhyFST7 7Ze0vSRvVy9C7UWnihrqN gTMrFin/94qYnam2lYYRa eSwkEg== |
# Example of request message
{
"appId": "B2iwKFIM4tvo",
"merchantId": "CH10001165",
"timestamp": 1710437546000,
"sign": "wKiDE42Ed/osErh1GrVtCTtwqBfjO6TJmbN7fWo1nKGF0M7QEwoEGsZzNCF20Ks6q7MTpL2TwaQrYfjwxQ4nzvYNHG8GfjkUMon15ouVddEL8G2Ajq77NfZ8Vm/SXwore02kU9wMoJKucU7MBERm2RIfy1vc2gkHwlGBftLR/fuf4ucdmYKWl5ATdH44w5vUxq5L8tfEf6pVBEDOS5ragisBODABHRrxkRg++i14rMc+9SgEa80UmzdQi6YTtCLIWUKm5PjtkxGZbXYbST0EWo5NqrGPYwZHhyFST77Ze0vSRvVy9C7UWnihrqNgTMrFin/94qYnam2lYYRaeSwkEg=="
}
# Response parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
code | String | Y | ResponseCode 000000indicatessuccess, othersindicatefailure. | 000000 |
msg | String | Y | ResponseDescription success:Successful | success |
merchantId | String | N | merchantid | CH10001165 |
data | List | N | returnvalue | |
sign | String | Y | sign | GfpNwHrHeTYnidB9bHgdT gvsnbN8GIoo1NgYHmBpNi ucCSAKdjSKRnPs8bcnP/R cQZ8RZPuvh8ayBRBZOtgJ o4pxG89hT7MaXGUAhjMU+ gkns6EvN+RsNF+WKuqyWD rhXYVCZzDud7sKFeEqmyC SFNsViuBPCG5660z+euTi 35Q5O0J046FlMJi0+fn1f Cb+mHgauq7jkyuzXtAkRg IW1gKxa9YoBUYxdV26izI W4bgnCLF3b2w8ksXbs6F7 Bu7PjPGHRvZK9SjrrrYOm mIfCt8cwQFyaY3cWAuD8M /3yl5+iSQQxD9rN+Y/Bdm ps4v8zdTuniHy3gIzn2t8 o9saFQ== |
# Balance data object (data)
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
currency | String | Y | currency | USDT |
availableBalance | String | Y | Amount Available | 100 |
freezeBalance | String | Y | Frozen Amount | 10 |
totalBalance | String | Y | Lump Sum | 110 |
# Successful response message example
- Order successful response message example
{
"msg": "success",
"data": [
{
"currency": "USDT",
"availableBalance": "6847265.594768",
"freezeBalance": "27.75",
"totalBalance": "6847293.344768"
},
{
"currency": "INR",
"availableBalance": "88959600.5",
"freezeBalance": "19.03",
"totalBalance": "88959619.53"
}
],
"code": "000000",
"merchantId": "CH10001165",
"sign": "sasMT2wEkePN3gR5UYh6h98GWREft0zfCfin/jx8G0tFqB9XDNgvSrtUXsXeN3DtJzzaP9xVKBPAjNhtglcPAgvfdkKI/Jr6jn3smXyok/wkSx3/NVexCE5wRLHEzUCFOydbWEgjoHyA9fn4c9F5QUtQsS/S7O96bpUAtD9UdwjihsTxy4vQ9fItm7ksjA73yRhZa3pi0vxNEUuFOol6gT2PDxa7pWaVpLYmBDD00swtuObhLWejFZjqRWR5di52zRALlWDCfc3EAtVc0VfAbeIPkzp7EDbx8/XAyK4XDFuMUly5QeeABUMccz/Sa0PXD3NPyJKbXj3/iHab2Pv65w=="
}
- Order failed response message example
{
"code": "A0340",
"msg": "sign error! (A0340)",
"data": null
}
# Code implementation demo
- Code examples are for reference only, please refer to the request parameter description for specific parameters.
import com.google.gson.Gson;
import okhttp3.*;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;
public class PaymentBalanceDemo {
/**
* Platform public key
*/
private static final String PLAT_PUBLIC_KEY ="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1dad35S74jfLPbHJh8P0jDHiTvkxwrtITK97ovVu19B24UdiHyHoEZgtNlS6alFQj1ULQ71d6EPh2rWCNkS2b5HGQXwDYBtwvesVQ8h4Sf3eVPTTLGw3BS7Os4vtDEN6BezMdv3sUG2N5i6JF+5H4CQTq3MD2Cx6u/Cv7oFOdFqeDT0AH+TR7uyZxn69OtkJaHHr834EUcdShJKKMQtbC11WCcut7ilDUgdvZnThiVTq7cfl8mcC9FDKcQ9bMWamScWIB5cJQdUW23Kr0c1NvZlpgPS8U5VODM4Uc4muHJPD2cJmquuJ+4AGP36rEk27lUB3h7B6JI1QGiuh1yyPDwIDAQAB";
/**
* Merchant's private key
*/
private static final String MCH_PRIVATE_KEY ="MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC/wgJqa2WHUTrJwdrtOig8lwuKPaL462/1rF45p+xi25uoGUEyiOtB0OC6HLePUfkGYzPULPH/O0yF5GmWkhSuz3lKK/XtXSeRdQIwAQ7lYlhfdJjTLVC7mwkDRZeFePwbnAX5pC0h6Yxf0ibjAglkW2d45AscouZt91xIxgf0VLNZ9dHe8R7j8hPKOGpNi+709ThmRZQVHQLN+6w+mrID7JyWBSbbf2bVWc7UBlHCkudwjEiW/r96CefTukb0SigaS0XpqWEKYHeNWS0DP/a5OUDzXMi6fqHEzMPa6uNYbLpOW1rxMhMhU97W8pLYBba0T9BI7F/xusozxVDVeQbDAgMBAAECggEAdZ4EaU3yemuCiZoUNIoFgBSNiX+A5PlUNPZC3U54mbJl6VeEPADre/Uowj82//uhqR9T/QKMdKbkqwONGEQF16t+k9YfBDatPHTuoI8lmeEWn4Ye7vjOmiPgBVe8NqwcxrqOl67x1+kupt955qerJxlBgE8v2aK5gB3HRwPggSYZgSZJ3X2zQMJ+XN4qe49Un+utqFuGtVRwPQvs/Kazp5GL7WlR0OnpQ2KZ+ur9T58VfTKmIeqBckey7nIrb/fdodJ7IqcykWjSLmy8p84W78iiRDfPn81Ujb231EWW+AbuV399aXBZ4oaR4q8wwkhe9xHUADWLvcfCnMrB40LkEQKBgQD2TEeBEB5Gwj/zpriq23xKJyzfo0hOxzGY/Ol2EykGeEYhny/YiTlMYtOMy37RiGKr4lN7G/pKl2fI5kRjgQM1QXgx6dxd11D0rORXj+SAy6+zAq3NVY4c3zDKmrQQ8x3f2QFffo+TmLtw/BH0Frp+a2lzKzIcXtZ4/akJdVIihwKBgQDHT7xvOaNyAPnnYwpROMI9eUVgFc9pMRAmQ18at8ggZ8M+Ww1nhr00loufzkovCb9MvGR4HSedWHfgmtDu1hUFtl7PItNItsB347yWPxR/lVLs44NVXt7jkFisoBoEBXaNVVt6uOSvBiqINmX3gm4FoisI2SRZsH7nMr07OXO85QKBgCkXdN6Nh9+aTP0jla+7yrK8cnolTc0G4rl5iKHQdInFyz2Ux3DDBDJAUrcsxE3FCWFP80mY01tag1A7SrGnNpfOAnWhZMirQbBwn/AT67WpRfkBu2mEmp8qhYNn6B7j0Nol5FrATMf9NViWVZB5skehOAik7klZcULiXy9ayYdFAoGAA+0bLim5gYZpZdh6nIz8ro9UAYeMdWsFAWv0VKdoJtNEclcC1ZY+5elNSNGcfn63qQBRDlisrhnPCrqiAQJwmZM1HOl3tgf7lKEE1wTZF4ZOguIcdTMQOvVd+dCRkqC07CXRToKT5qq9bb98lLqaBjxikqMMZ0PlzBIgzijckc0CgYAH16CziStEZVvKbiR8b0ftF9mf6V8I0KHianMgV8X6Y51aE0Ig1eQhIvqSjqtBac7gEppiu3OQVrp39uLdgyvDSVta1Hq9QYYTDNt8crt69aD/Th1h5esYvApYyZIhHbFDR5meE4Y3nHpfY7J8zhmfyaVW/6cuwPaToTtrEjQmWQ==";
/**
* apiUrl
*/
private static final String API_URL = "https://test2-openapi.91fafafa.com/api/india/balance/query";
public static void main(String[] args) throws Exception {
utrSupplementaryOrder();
}
private static void utrSupplementaryOrder() throws Exception {
Map<String, Object> requestParams = new HashMap<>();
requestParams.put("appId", "B2iwKFIM4tvo");
requestParams.put("merchantId", "CH10001165");
requestParams.put("timestamp", "1710437546000");
// Private key encryption
String sign = CheeseTradeRSAUtil.getSign(requestParams, MCH_PRIVATE_KEY);
requestParams.put("sign", sign);
// Interface request
Gson gson = new Gson();
String requestBody = gson.toJson(requestParams);
System.out.println("Post Json Params:" + requestBody);
// Send a request and get a response
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(mediaType, requestBody);
Request request = new Request.Builder()
.url(API_URL)
.post(body)
.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36")
.build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) {
// Failure handling...
System.out.println("Request failed: " + response.code() + " - " + response.message());
}
// Signature verification processing
String responseBody = response.body().string();
System.out.println("Response: " + responseBody);
Type type = new com.google.gson.reflect.TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> map = gson.fromJson(responseBody, type);
boolean verifyResult = CheeseTradeRSAUtil.verifySign(map, PLAT_PUBLIC_KEY);
if (verifyResult) {
// ... If signature verification is successful, process normal business logic.
} else {
// ... Signature verification error
}
response.close();
}
}