法币(卢比)代收下单

# 代码示例

TopPaySignUtil点击获取代码示例

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);
    }
}
<?php
require_once 'TopPaySignUtil.php';

class PayOrderCreate {
    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/newOrder';

    public static function create() {
        $requestParams = [
            'merchantCode' => self::MCH_ID,
            'orderNum' => 'T1642593166888',
            'orderAmount' => '888',
            'callback' => 'https://xxx/yyy',
            '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";
    }
}

PayOrderCreate::create();
?>
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;

class PayOrderCreate
{
    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/newOrder";

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

    private static async Task Create()
    {
        Dictionary<string, string> requestParams = new Dictionary<string, string>
        {
            { "merchantCode", MCH_ID },
            { "orderNum", "T1642593166888" },
            { "orderAmount", "888" },
            { "callback", "https://xxx/yyy" },
            { "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/newOrder"
)

func create() {
	requestParams := map[string]string{
		"merchantCode": MCH_ID,
		"orderNum":     "T1642593166888",
		"orderAmount":  "888",
		"callback":     "https://xxx/yyy",
		"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() {
	create()
}
import json
from TopPaySignUtil import TopPaySignUtil


class PayOrderCreate:
    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/newOrder'

    @staticmethod
    def create():
        request_params = {
            'merchantCode': PayOrderCreate.MCH_ID,
            'orderNum': 'T1642593166888',
            'orderAmount': '888',
            'callback': 'https://xxx/yyy',
            'timestamp': '1745377181'
        }

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

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


if __name__ == "__main__":
    PayOrderCreate.create()
// ============= 请求地址 =============
const axios = require('axios');
const REQ_URL = 'https://india-openapi.toppay.asia/pay/newOrder';
// ============= Java 端使用的公钥与私钥(PKCS8 格式) =============
// 注意:Java 的 key 是 PKCS8(-----BEGIN PRIVATE KEY-----)格式!
const privateKey = `
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCWW6LCzhvfkEwU
s1iYkfTw4hKdVFy4+cJel1T4fqdTCMiKj/PvpQKxJB3cklH+uC6UEkMLiLojMARP
Ti/6t3n/OFgGGVe1w1U1Ejx8Lx/7z2moYW9aOMBj4cNBaa6mJIMKVByZMswW3rT2
Z4S7aV4U3z+JOCLd9gA6s6cYHQJcJMB8z80Qjy5eKjcoleaPVHqg5zg38SEQOjj8
j0PbNyapaWFlLkZgNM2IFXgnUlLHyEW35aegiliZFr3DodX9pHOoL6LGpIlHZye3
xSIjh4aWB1IXYVa6t8k0PFgl4Kqf0F6FZJRu5uwBRmvz1Q5jtRyXXMw/aTWnOTBR
tyexq2B5AgMBAAECggEAZNPWdaQZdPYizs7l3ooiI1a2/OIRu8lg2mXJCUqFkl0V
fjXCczXIdFmv3LYSXinMsmb8psNtbyNIAJaB/jMDkG6MOKrN8ommngw4m15OqGIS
jGOqdGoSOeivMzJXd/qMFWUKOIGj8sItv/7zN2oVORHsXWxTlVzeEn9e0gDCEF9U
Zzrt6zKnhwOxmfb1jR4dFtXfTjOa3GASXiJ0zP3x5W07Paf6eo3J9s7OXbkZZWvJ
0ymppyuy29IFPDUhUKEQK0Y/W9xu1R9AdFEJQ4az2OLYbASfnrJ/3F6Pfr5qVuR2
neQqb2K7Tf/Wt7m1Ry9Z+5HNfslwQoXy3IMge175wQKBgQD/+G7t8ggUtvxUkhBk
kudSkCdB04Yktc2spPLUp0WVISOomaxypClZE5ewTBJ9fdooEwGZ2nKHuVt5oAfm
H2zZTMrYs6AMq4IoP1TF92DVJ09sNVRGO+K5Nx9yBnzZ7gtqms9e4z2VorTrTnJa
s1HxHgFQ2qqeq7tkyEftfffvbQKBgQCWYBSaZPYKSdfJe+LUAKVMGvwWhdwyD3kp
NcY3zE+1QVn3RPnYkPYEASaJpEOLBCOSLMH19MFuFWkClRs+nNiaZtHvjVhaHZJX
vABA1oXa4tTIXkI25fJn6D67T/uuFf2iMEfxjtjIyvFhAb7NUGjxBR0T4+xtTGZ8
msIft+LxvQKBgQDyPuSEzkT1jcO6Kc3X0OuZSJHOi2ftgB1ZIXYq6O9CVm2P13fL
uy7ifVdWYngxSZTXzjz6pTE036gBsAEpuV3jPPjQIxb6RqpUerM484gx0hUpPEM4
gN5uGQvqdtdbzBwD1OUiUP7siWKdOs2gpwqKnbHzGi7VIYOkuqLP0SJ+9QKBgQCE
mh8w8ryf3/PgIVWpOxSIIveO6OV+Y3SlKV0skQbsv78UtAdZuKKob1dLYsWIzdKM
MNmtCPKVH14lP9Txhp/er7KKemqhtJf6s7bJdiI9HW8jbTMYc/cpN3wx8trt7Uhm
gArA8QUrMwJdV4uoQzL27lpw0rkGvKtXT6TFEYOXRQKBgCWdYTeJe08xFzfsYyeO
qFKQKs/05oS17mRQTxxbFqqcGr11vp5c/dkoWE28eBe7HN2XsRAi1mUN9FQfJvt4
H6vZ7xYrnDnbXKtOCE/UMFkbROWOIn/5sBbNsCJzJdRCurrqvF5z8sTs8RQ20np7
XN6EbGBGcXvslVKo8e2DhXYk
-----END PRIVATE KEY-----
`;

const publicKey = `
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlluiws4b35BMFLNYmJH0
8OISnVRcuPnCXpdU+H6nUwjIio/z76UCsSQd3JJR/rgulBJDC4i6IzAET04v+rd5
/zhYBhlXtcNVNRI8fC8f+89pqGFvWjjAY+HDQWmupiSDClQcmTLMFt609meEu2le
FN8/iTgi3fYAOrOnGB0CXCTAfM/NEI8uXio3KJXmj1R6oOc4N/EhEDo4/I9D2zcm
qWlhZS5GYDTNiBV4J1JSx8hFt+WnoIpYmRa9w6HV/aRzqC+ixqSJR2cnt8UiI4eG
lgdSF2FWurfJNDxYJeCqn9BehWSUbubsAUZr89UOY7Ucl1zMP2k1pzkwUbcnsatg
eQIDAQAB
-----END PUBLIC KEY-----
`;

// ============= 要签名的业务参数 =============
const params = {
    merchantCode: 'S820190712000002',
    orderNum: 'T16425931668144',
    orderAmount: '888',
    callback: 'https://xxx/yyy',
    timestamp: Math.floor(Date.now() / 1000), // 秒级时间戳
};

// ============= 工具函数 =============

// 1️⃣ 按 key 排序并拼接为 key=value&key=value 格式
function getSortedQueryString(params) {
    return Object.keys(params)
        .filter(k => params[k] !== undefined && params[k] !== null && params[k] !== "")
        .sort()
        .map(key => `${key}=${params[key]}`)
        .join('&');
}

// 2️⃣ RSA 私钥加密(对应 Java encrypt())
function rsaPrivateEncrypt(data, privateKeyPem) {
    const buffer = Buffer.from(data, 'utf8');
    const maxBlock = 245; // Java 中的 MAX_ENCRYPT_BLOCK
    const chunks = [];
    for (let offset = 0; offset < buffer.length; offset += maxBlock) {
        const chunk = buffer.slice(offset, offset + maxBlock);
        const encrypted = crypto.privateEncrypt(
            {
                key: privateKeyPem,
                padding: crypto.constants.RSA_PKCS1_PADDING,
            },
            chunk
        );
        chunks.push(encrypted);
    }
    return Buffer.concat(chunks).toString('base64');
}

// 3️⃣ RSA 公钥解密(对应 Java decrypt())
function rsaPublicDecrypt(base64Data, publicKeyPem) {
    const buffer = Buffer.from(base64Data, 'base64');
    const maxBlock = 256;
    const chunks = [];
    for (let offset = 0; offset < buffer.length; offset += maxBlock) {
        const chunk = buffer.slice(offset, offset + maxBlock);
        const decrypted = crypto.publicDecrypt(
            {
                key: publicKeyPem,
                padding: crypto.constants.RSA_PKCS1_PADDING,
            },
            chunk
        );
        chunks.push(decrypted);
    }
    return Buffer.concat(chunks).toString('utf8');
}

// 4️⃣ 发送请求
async function sendPostRequest() {
    try {
        const sourceData = getSortedQueryString(params);
        console.log('待签名字符串:', sourceData);

        // 生成 Java 等价签名(RSA 私钥加密)
        const sign = rsaPrivateEncrypt(sourceData, privateKey);
        console.log('生成的签名 (Base64):', sign);

        // 验证签名逻辑一致性
        const verifyResult = rsaPublicDecrypt(sign, publicKey);
        console.log('本地验签结果是否一致:', verifyResult === sourceData);

        // 构建请求数据
        const requestData = {
            ...params,
            sign:sign,
        };

        console.log('\n最终请求数据:\n', JSON.stringify(requestData, null, 2));

        // 发送 POST 请求
        const response = await axios.post(REQ_URL, requestData, {
            headers: { 'Content-Type': 'application/json' },
            timeout: 16000,
        });

        console.log('\n状态码:', response.status);
        console.log('响应数据:', response.data);
    } catch (error) {
        if (error.response) {
            console.error('❌ API 错误响应:', error.response.data);
            console.error('状态码:', error.response.status);
        } else if (error.request) {
            console.error('❌ 无响应:', error.request);
        } else {
            console.error('❌ 请求失败:', error.message);
        }
    }
}

// 执行
sendPostRequest();

# 请求地址

  • 请求方式 : 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"
  }
}