法币(卢比)代收下单
# 代码示例
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;
public class PayOrderCreate {
//MCH_ID: 商户ID
//请登录商户后台,点击 个人中心 > 个人信息 在基本信息中获取商户ID
private static final String MCH_ID = "S820211021094748000001";
private static final String MCH_PRIVATE_KEY = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJU8gKFKD0luIYx7X8+JRdCIE0UDBctS6LjXxWLEv/EO7jDBTid6zYP1KmNgpd2DAWWtBFBSQ+gcNwVZZSBHJiSDqVvvJVs2FEbeBvfdv4X93+IYRAXksBasSW5Tpdshbo82pVL4V7wuKCuFLk9UxBHbpQjWAbfyF66RmwIbZD71AgMBAAECgYBjPe7UU2nDDSfmQg0++CyjNjqKRC5QPfxhH6w1uF1kMueXKJWOj42n2RutJpJmsj31nY8m0u4xpsG4HvCu/GGSFhhKZCHLvzp41oY2ubYj9nuFNU//81LycQjulWo2y0UUBY0k2piEt+SwPaiUNbT6nMxNMjlnjRe2okp/3rw+KQJBANG3YlZWoVbCEqzy64bJJLxiPsCA5ErGB0NzRGitq44xkhqGtR8ZZQyVz40pruNa58d73O2xyJSy5+fmZGn4E+sCQQC2LBnguj0CSCKub0mPDcunTTz9V79VXBBZdlB1/YGmRUx2s4sQrJNZS7rL4EqBQ3maIRnG+s+AXCSTfsYrV6CfAkEAxugnVfpelhoGepEAgNuggyivmgfl/2Gpm/jk5l/qOjib+ZrQiQmeBPzGWX4yiSM8eMDrP2sC8r5pJFMp5DRONwJBAJ4n4XuSFJ9jgwCPy3vvzSv9SYLk6E6yM9uHdUlKgoGYzk6Lh6M9QFuY/J49plFdBDiEnj16yCU3WeXXfTJpzB8CQQDMNMR/rIOTE9xGybS3mlQbt22AUnO6XhupWcckEKW4nPGxATwYBQzCY3i/9FTGN0vA+9ZPC2cwHtNxI2kXf3Vp"; // 商户私钥
private static final String REQ_URL = "https://india-openapi.toppay.asia/pay/newOrder";
public static void main(String[] args) throws Exception {
create();
}
private static void create() throws Exception {
//根据接口要求组装参数
Map<String, String> requestParams = new HashMap<>();
requestParams.put("merchantCode", MCH_ID);
requestParams.put("orderNum", "T1642593166888");
requestParams.put("orderAmount", "888");
requestParams.put("callback", "https://xxx/yyy");
requestParams.put("timestamp", "1745377181");
//参数格式化并计算签名 并将签名值加入到请求参数中
String source = TopPaySignUtil.paramFormat(requestParams);
requestParams.put("sign", TopPaySignUtil.sign(MCH_PRIVATE_KEY, source));
//参数序列化成Json 并发起post请求
String postJson = new Gson().toJson(requestParams);
System.out.println("Post Json Params:" + postJson);
String responseJson = TopPaySignUtil.doPost(REQ_URL, postJson);
System.out.println("Response Msg:" + responseJson);
}
}
# 请求地址
- 请求方式 : POST
- 请求地址 : https://india-openapi.toppay.asia/pay/newOrder
# 请求参数
注:所有的参数中,不要填写中文!!!
| 参数 | 必填 | 描述 | 示例 |
|---|---|---|---|
| merchantCode | Y | 商户ID | S820190712000002 |
| orderNum | Y | 商户订单号 | T1231511321515 |
| orderAmount | Y | 订单金额(单位:1卢比,代收不支持小数) | 888 |
| callback | Y | 回调地址 | https://xxx/yyy |
| timestamp | Y | 时间戳(秒),取系统实时时间戳 | 1745377181 |
| sign | Y | RSA签名 | ja6R8eukQ... |
# 请求报文示例
{
"merchantCode": "S820211021094748000001",
"orderNum": "T1642593166888",
"orderAmount": "888",
"callback": "https://xxx/yyy",
"timestamp": "1745377181",
"sign": "lGw1OJcuUL0MGaIq44U2u2bFM5dalJJuT/G6mQWbIBT9dmVAJaLwR125emPDXYYSdnOtNxja86A2VJJLf40BCg2HevHolebvt2ay3ukCQaUhwNkIGz4KF0Ud+XMUA36LoFTWZbDYv9y8vgCnWxwZFKj7ePrfLxc+TA7jpqv65lQ\u003d"
}
# 响应参数
- 外层统一返回结构
| 参数 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| code | int | Y | 接口响应码 | 0代表成功,其他的都为失败 |
| message | String | Y | 接口响应信息 | 返回具体响应信息 |
| data | Json | Y | 接口响应参数 | 参考如下data字段内部结构 |
- data字段内部结构
| 参数 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| platOrderNum | String | Y | 平台订单号 | PI1453242857400963072 |
| payUrl | String | Y | 收银台地址 | https://xxx/yyy |
| paytm | String | Y | paytm支付唤醒 | paytmmp://cash_wallet?pa=abc123@asdf |
| upi | String | Y | 其他银行UPI支付唤醒 | upi://pay?pa=abc123@asdf |
| gpay | String | Y | gpay支付唤醒 | gpay://pay?pa=abc123@asd |
| phonepe | String | Y | phonepe支付唤醒 | phonepe://pay?pa=abc123@asd |
# 响应报文示例
{
"success": true,
"code": 0,
"message": "Success",
"data": {
"platOrderNum": "PAY1483771634191044608",
"payUrl": "https://xxx/yyy",
"paytm": "paytmmp://cash_wallet?pa=abc123@asdf",
"upi": "upi://pay?pa=abc123@asdf",
"gpay": "gpay://pay?pa=abc123@asd",
"phonepe": "phonepe://pay?pa=abc123@asd"
}
}