Fiat Currency Payment UTR supplementary order
# Request URL
- POST https://test2-openapi.91fafafa.com/api/payment/india/order/submitUTR
# Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
merchantId | string | Y | MerchantID | CH10001165 |
appId | string | Y | MerchantAppID | B2iwKFIM4tvo |
orderNo | string | Y | Ordernumber | A1202402200210162 |
orderNoType | string | N | Order number type Default:merchant merchant - Merchant order number platform - Platform order number | merchant |
utr | string | Y | UTR, 12-digit number | 407429451910 |
timestamp | long | Y | Submission timet (Timestamp:Milliseconds) | 1710419518182 |
sign | string | Y | Signature | Q/7Fcvdzn2nHpAD9CL3nyCMwtX9dipRH6LgAQuBb fE8D9qeXtZhhmBMpWQhwV7osNc+GFkcOZyJ3/uOq 9QPDAQ3f/SmUv6vBEy4Xpz8fEZ8CzgVA5YTGNVtj I/WGl9ZcFw0YgMBQrcGzg0AD520btw0O+k6TFYs ZKO4JLCvN8zE1GdsgRSqxw19pFoMdI6Az+fldy5 nUjb3fDH52vz4eO1QhNfq7qT4jv9KmcPkdMn/ZF E0I39y4eDhJnablVlgUP8kt1hxVK7kMM6luUjkK XBBAQiMrW2uB3WMWvJmuQYmjYYktvbpO122Y+oL H9XjbdkOEsPEm2T684qtl7x5oXw== |
# Example of request message
{
"merchantId": "CH10001165",
"appId": "B2iwKFIM4tvo",
"orderNo": "A1202402200210162",
"orderNoType": "merchant",
"utr": "407429451910",
"timestamp": 1710419518182,
"sign": "Q/7Fcvdzn2nHpAD9CL3nyCMwtX9dipRH6LgAQuBbfE8D9qeXtZhhmBMpWQhwV7osNc+GFkcOZyJ3/uOq9QPDAQ3f/SmUv6vBEy4Xpz8fEZ8CzgVA5YTGNVtjI/WGl9ZcFw0YgMBQrcGzg0AD520btw0O+k6TFYsZKO4JLCvN8zE1GdsgRSqxw19pFoMdI6Az+fldy5nUjb3fDH52vz4eO1QhNfq7qT4jv9KmcPkdMn/ZFE0I39y4eDhJnablVlgUP8kt1hxVK7kMM6luUjkKXBBAQiMrW2uB3WMWvJmuQYmjYYktvbpO122Y+oLH9XjbdkOEsPEm2T684qtl7x5oXw=="
}
# Response parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
code | String | Y | Response Code 000000 indicates success, others indicate failure | 000000 |
msg | String | Y | Response Description success: Successful | success |
sign | String | Y | Signature | GfpNwHrHeTYnidB9bHgdTgvsnbN8GIoo1NgYHmBpNiucCS AKdjSKRnPs8bcnP/RcQZ8RZPuvh8ayBRBZOtgJo4pxG89h T7MaXGUAhjMU+gkns6EvN+RsNF+WKuqyWDrhXYVCZz Dud7sKFeEqmyCSFNsViuBPCG5660z+euTi35Q5O0J046F lMJi0+fn1fCb+mHgauq7jkyuzXtAkRgIW1gKxa9YoBUYxdV2 6izIW4bgnCLF3b2w8ksXbs6F7Bu7PjPGHRvZK9SjrrrYOm mIfCt8cwQFyaY3cWAuD8M/3yl5+iSQQxD9rN+Y/Bdmps4 v8zdTuniHy3gIzn2t8o9saFQ== |
# Successful response message example
- Order successful response message example
{
"code": "000000",
"msg": "success",
"sign": "JfMNjcLkfwl+xbCxAtXME1IxfDSNWiKqvYpftw4lb9F6XhraEkslnuyV3k5skcsD5B10DlKcFX8gel+KxHI/hHvd0ZexjwG5vtumdZUWcalvZfReWY888kGKMNZBOiombl89ARSVKi999CWoXOY/MHK60Hlt26coZ0WX6uV5//N9QcNZFGcw/4Azd50iz8EimJxoNgfKQRUdiMiwrIlCpqKbabyW0oF3adNt939U/bbugcVffnqYYutxOsZhhDOoXh+B2g+ABZ3QdHFW0FNKjxBHXnMRQe+Ym89c8669g90OXRkIbYh/c4Y+bB9OrYFxC9zogkMpJyVH7Es6Q87U5g=="
}
- Order failed response message example
{
"code": "C4322",
"msg": "utr has been matched successfully",
"sign": "wmJo0fyuIgU1Vo93cEuK2VBkTN7Vg0oLF4m6+o6dD6ssbYo9GZgjE1iz+xUQxiIr0PQM4/iTet+OolTUJPc8ULbkOgfE0h24TIXjupN1nkwle8VJA95XFHdElKTB6GeLvYdiLU4XmqX+3rOcnWly6361C5nF00r9N9OcvVPOqfR1n7u5wJ4spvhefTdRxTGJuwXz/Z8ZPY6uS/lQYLNUTZqduYNnXJuO239HcSnZaxSP35225x+8aHNN/QQR8fV+zJhR2zRx0/ufYDRZR+rygvTCGGr1Uar4m7rOyAeCe79cAjpgF9MLspPtdKbQznBBte1XgzNQVFfZBiuJZIr+WA=="
}
# 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 UtrSupplementaryOrderDemo {
/**
* Platform public key
*/
private static final String PLAT_PUBLIC_KEY ="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1dad35S74jfLPbHJh8P0jDHiTvkxwrtITK97ovVu19B24UdiHyHoEZgtNlS6alFQj1ULQ71d6EPh2rWCNkS2b5HGQXwDYBtwvesVQ8h4Sf3eVPTTLGw3BS7Os4vtDEN6BezMdv3sUG2N5i6JF+5H4CQTq3MD2Cx6u/Cv7oFOdFqeDT0AH+TR7uyZxn69OtkJaHHr834EUcdShJKKMQtbC11WCcut7ilDUgdvZnThiVTq7cfl8mcC9FDKcQ9bMWamScWIB5cJQdUW23Kr0c1NvZlpgPS8U5VODM4Uc4muHJPD2cJmquuJ+4AGP36rEk27lUB3h7B6JI1QGiuh1yyPDwIDAQAB";
/**
* Merchant 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/payment/india/order/submitUTR";
public static void main(String[] args) throws Exception {
utrSupplementaryOrder();
}
private static void utrSupplementaryOrder() throws Exception {
Map<String, Object> requestParams = new HashMap<>();
requestParams.put("merchantId", "CH10001165");
requestParams.put("appId", "B2iwKFIM4tvo");
requestParams.put("orderNo", "A1202402200210136");
requestParams.put("orderNoType", "merchant");
requestParams.put("utr", "407429451910");
requestParams.put("timestamp", System.currentTimeMillis());
// 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 request and receive 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 process
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) {
// ... Signature verification passed, proceed with normal business logic
System.out.println("Signature verification successful");
} else {
// ... Signature verification error
System.out.println("Signature verification failed");
}
response.close();
}
}