法币(卢比)代收订单查询

# 代码示例

TopPaySignUtil点击获取代码示例

import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;

public class PayOrderQuery {
    //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/get";

    public static void main(String[] args) throws Exception {
        query();
    }

    private static void query() throws Exception {
        //根据接口要求组装参数
        Map<String, String> requestParams = new HashMap<>();
        requestParams.put("merchantCode", MCH_ID);
        requestParams.put("orderNum", "T1642593166888");
        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);
    }
}
<?php
require_once 'TopPaySignUtil.php';

class PayOrderQuery {
    const MCH_ID = 'S820211021094748000001';
    const 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';
    const REQ_URL = 'https://india-openapi.toppay.asia/pay/get';

    public static function query() {
        $requestParams = [
            'merchantCode' => self::MCH_ID,
            'orderNum' => 'T1642593166888',
            'timestamp' => '1745377181'
        ];

        $source = TopPaySignUtil::paramFormat($requestParams);
        $requestParams['sign'] = TopPaySignUtil::sign(self::MCH_PRIVATE_KEY, $source);

        $postJson = json_encode($requestParams);
        echo "Post Json Params: $postJson\n";
        $responseJson = TopPaySignUtil::doPost(self::REQ_URL, $postJson);
        echo "Response Msg: $responseJson\n";
    }
}

PayOrderQuery::query();
?>

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;

class PayOrderQuery
{
    private const string MCH_ID = "S820211021094748000001";
    private const 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 const string REQ_URL = "https://india-openapi.toppay.asia/pay/get";

    public static async Task Main()
    {
        await Query();
    }

    private static async Task Query()
    {
        Dictionary<string, string> requestParams = new Dictionary<string, string>
        {
            { "merchantCode", MCH_ID },
            { "orderNum", "T1642593166888" },
            { "timestamp", "1745377181" }
        };

        var source = TopPaySignUtil.ParamFormat(requestParams);
        requestParams["sign"] = TopPaySignUtil.Sign(MCH_PRIVATE_KEY, source);

        string postJson = JsonConvert.SerializeObject(requestParams);
        Console.WriteLine($"Post Json Params: {postJson}");
        string responseJson = await TopPaySignUtil.DoPost(REQ_URL, postJson);
        Console.WriteLine($"Response Msg: {responseJson}");
    }
}

package main

import (
    "encoding/json"
    "fmt"
)

const (
    MCH_ID          = "S820211021094748000001"
    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"
    REQ_URL         = "https://india-openapi.toppay.asia/pay/get"
)

func query() {
    requestParams := map[string]string{
        "merchantCode": MCH_ID,
        "orderNum":     "T1642593166888",
        "timestamp":    "1745377181",
    }

    source := paramFormat(requestParams)
    requestParams["sign"] = sign(MCH_PRIVATE_KEY, source)

    postJson, err := json.Marshal(requestParams)
    if err != nil {
        panic(err)
    }
    fmt.Printf("Post Json Params: %s\n", string(postJson))
    responseJson, err := doPost(REQ_URL, string(postJson))
    if err != nil {
        panic(err)
    }
    fmt.Printf("Response Msg: %s\n", responseJson)
}

func main() {
    query()
}

import json
from TopPaySignUtil import TopPaySignUtil


class PayOrderQuery:
    MCH_ID = 'S820211021094748000001'
    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'
    REQ_URL = 'https://india-openapi.toppay.asia/pay/get'

    @staticmethod
    def query():
        request_params = {
            'merchantCode': PayOrderQuery.MCH_ID,
            'orderNum': 'T1642593166888',
            'timestamp': '1745377181'
        }

        source = TopPaySignUtil.param_format(request_params)
        request_params['sign'] = TopPaySignUtil.sign(PayOrderQuery.MCH_PRIVATE_KEY, source)

        post_json = json.dumps(request_params)
        print(f"Post Json Params: {post_json}")
        response_json = TopPaySignUtil.do_post(PayOrderQuery.REQ_URL, post_json)
        print(f"Response Msg: {response_json}")


if __name__ == "__main__":
    PayOrderQuery.query()
const { TopPaySignUtil } = require('./TopPaySignUtil');

class PayOrderQuery {
    static MCH_ID = 'S820211021094748000001';
    static MCH_PRIVATE_KEY = `
-----BEGIN 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
-----END PRIVATE KEY-----
`;
    static REQ_URL = 'https://india-openapi.toppay.asia/pay/get';

    static async query() {
        const requestParams = {
            merchantCode: this.MCH_ID,
            orderNum: 'T1642593166888',
            timestamp: Math.floor(Date.now() / 1000), // 秒级时间戳
        };

        const source = TopPaySignUtil.paramFormat(requestParams);
        requestParams.sign = TopPaySignUtil.sign(this.MCH_PRIVATE_KEY, source);

        const postJson = JSON.stringify(requestParams);
        console.log(`Post Json Params: ${postJson}`);
        const responseJson = await TopPaySignUtil.doPost(this.REQ_URL, postJson);
        console.log(`Response Msg: ${responseJson}`);
    }
}

PayOrderQuery.query();

# 请求地址

  • 请求方式 : POST
  • 请求地址 : https://india-openapi.toppay.asia/pay/get

# 请求参数

参数 必填 描述 示例
merchantCode Y 商户ID S820190712000002
orderNum Y 商户订单号 T1231511321515
timestamp Y 时间戳(秒),取系统实时时间戳 1745377181
sign Y RSA签名 ja6R8eukQ...

# 请求报文示例

{
  "merchantCode": "S820211021094748000001",
  "orderNum": "T1642593166888",
  "timestamp": "1745377181",
  "sign": "lGw1OJcuUL0MGaIq44U2u2bFM5dalJJuT/G6mQWbIBT9dmVAJaLwR125emPDXYYSdnOtNxja86A2VJJLf40BCg2HevHolebvt2ay3ukCQaUhwNkIGz4KF0Ud+XMUA36LoFTWZbDYv9y8vgCnWxwZFKj7ePrfLxc+TA7jpqv65lQ\u003d"
}

# 响应参数

  • 外层统一返回结构
参数 类型 必填 描述 示例
code int Y 接口响应码 0代表成功,其他的都为失败
message String Y 接口响应信息 返回具体响应信息
data Json Y 接口响应参数 参考如下data字段内部结构
  • data字段内部结构
参数 类型 必填 描述 示例
platOrderNum String Y 平台订单号 PI1453242857400963072
merchantCode String Y 商户ID S820211021094748000001
orderNum String Y 商户订单号 23645782
status int Y 订单状态(订单是否成功的标识) 10:已创建 20:处理中 30:成功 40:失败
orderAmount decimal Y 订单金额(单位:1卢比,代收不支持小数) 888
realAmount decimal Y 入账或者捐款金额(单位:1卢比,代收不支持小数) 888

# 响应报文示例

{
  "success": true,
  "code": 0,
  "message": "Success",
  "data": {
    "platOrderNum": "PAY1483771634191044608",
    "merchantCode": "S820211021094748000001",
    "orderNum": "T1642593166888",
    "status": 30,
    "orderAmount": "888",
    "realAmount": "888"
  }
}