支付接口文档
左侧快速定位,右侧查看说明与在线调试。

平台说明

本接口提供相关充值、提现、查询订单等功能

快速开始

  1. 进入商户后台首页,获取 app_idapp_secret
  2. 严格按 签名规则 生成 sign签名
  3. 对接域名:https://payapi.ztpay188.com
  4. 发起收款或代付请求,一定要严格按照所需字段传入
  5. 异步通知:在 notify_url 接收支付/代付结果,完成业务更新。
  6. 可在文档底部「在线调试」直接生成签名并发起请求。

签名规则

所有发送的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。再在后面拼接接入app_secret得到字符串stringB。最后进行md5加密得到sign签名

请求字段中的sign、sign_type、extra不参与签名

        // php代码参考,params为请求参数,调用buildRequestParam即可,其他语言可自行用ai转换
        
        private function buildRequestParam($param=[]){
          $mysign = $this->getSign($param);
          $param['sign'] = $mysign;
          $param['sign_type'] = 'md5';
          return $param;
        }
          
        // 计算签名
        private function getSign($param=[]){
          ksort($param);
          reset($param);
          $signstr = '';
          foreach($param as $k => $v){
            if($k != "sign" && $k != "sign_type" && $k != "extra" && $v!=''){
              $signstr .= $k.'='.$v.'&';
            }
          }
          $signstr = substr($signstr,0,-1);
          $signstr .= $this->app_secret;
          $sign = md5($signstr);
          
          return $sign;
        }
      
          //js代码参考
        function signParams(params) {
            const appSecret = appSecretInput.value.trim();
            if (!appSecret) throw new Error("请填写 app_secret");
            
            // 创建临时对象,排除不需要签名的字段
            const tempParams = {};
            for (const key in params) {
                if (params.hasOwnProperty(key)) {
                    const value = params[key];
                    if (key !== "sign" && key !== "sign_type" && key !== "extra" && value !== "") {
                        tempParams[key] = value;
                    }
                }
            }
            
            // 按键名排序
            const sortedKeys = Object.keys(tempParams).sort();
            
            // 构建签名字符串(类似PHP的方式)
            let signStr = '';
            sortedKeys.forEach((key, index) => {
                signStr += `${key}=${tempParams[key]}`;
                if (index < sortedKeys.length - 1) {
                    signStr += '&';
                }
            });
            
            signStr += appSecret;
            return md5(signStr);
        }
      

验签失败常见原因:参数缺失、未去除空值、排序错误、app_secret不匹配。

异步通知

当订单状态变化时,平台以 POST form 方式回调 notify_url。建议收到后:

        //充值订单提现订单的通知都只会有如下参数,会对下面的进行签名
        {
            "app_id": 61,
            "trade_no": "W1004_202512152324344311",
            "out_trade_no": "out_trade_no",
            "pay_type": "bankpay",
            "status": 1,  //订单状态  充值订单2表示成功3表示失败,提现订单4表示成功5表示失败
            "amount": "100.00",
            "name": "11",
            "timestamp": 1765812274,
        }

充值下单 POST /shop_api/order/charge_submit

创建充值下单,返回支付链接。跳转到支付链接进行页面支付

        //返回结果示例
        {
          "code": 0,
          "message": "操作成功",
          "data": {
            "trade_no": "1004_202512152224528050",
            "out_trade_no": "123456",
            "pay_url": "http://payweb.***.com/en.html?trade_no=1004_202512152224528050"
          }
        }
字段参数名称说明类型
等待加载字段...

提现下单 POST /shop_api/order/withdraw_submit

创建提现订单,返回提现单号等。

        //返回结果示例
        {
          "code": 0,
          "message": "操作成功",
          "data": {
            "id": 61,
            "trade_no": "W1004_202512152324344311",
            "out_trade_no": "out_trade_no",
            "name": "hahah",
            "username": null,
            "out_user_id": "11",
            "extra": "",
            "timestamp": 1765812274,
            "status": "1",  //订单状态  1,2,3-进行中,4-成功,5-失败
            "paytime": null,
            "pay_image": null,
            "ip": null,
            "pay_type": "bankpay",
            "amount": "100.00",
            "addtime": "2025-12-15 23:24:34",
            "endtime": null,
            "notify_url": "http://www.baidu.com",
            "code_account": "",
            "code_name": "",
            "code_image": "",
            "bank_name": "2213213",
            "bank_card": "qweqweqw",
            "bank_code": "CiH"
          }
        }
字段参数名称说明类型
等待加载字段...

银行列表 GET /shop_api/system/bank/drop_list_all?app_id=1007

获取支持的银行编码。

字段必填说明
app_id商户app_id
{
        "code": 0,
        "message": "操作成功",
        "data": {
          "total": 4,
          "per_page": 1,
          "current_page": 4,
          "list": [
            {
              "id": 2,
              "name": "银行卡2",
              "code": "CODE2",
              "image": "https://picsum.photos/200/200?random=2"
            },
            {
              "id": 3,
              "name": "Al barid bank .",
              "code": "Al",
              "image": "https://pay.dhnpay.cc/uploads/20251202/898928a898171eb95705aed9f3ae0e76.jpg"
            },
            {
              "id": 4,
              "name": "CiH Bank.",
              "code": "CiH",
              "image": "https://pay.dhnpay.cc/uploads/20251202/089956e00bb88308a7d1e9e0e6dbad20.jpg"
            },
            {
              "id": 5,
              "name": "请问请问",
              "code": "2313",
              "image": "21321321"
            }
          ]
        }
      }

充值订单查询 GET /shop_api/order/charge_order?trade_no=11112222

字段必填说明
trade_no平台代付单号
        //返回结果示例
        {
        "code": 0,
        "message": "操作成功",
        "data": {
          "id": 1555,
          "trade_no": "1004_202512142344248576",
          "name": "hahah",
          "username": "小王",
          "out_user_id": "11",
          "extra": "",
          "timestamp": 1765727064,
          "status": "1",  //订单状态  0-未付款,1-已付款,2-付款成功,3-付款失败
          "paytime": "2025-12-15 21:43:36",
          "pay_image": "https://payapi.ztpay188.com/upload/expand/20251215214122_69401002664ed.png",
          "ip": "112.32.81.114",
          "out_trade_no": "123456",
          "pay_type": "bankpay",
          "amount": "100.00",
          "addtime": "2025-12-14 23:44:24",
          "endtime": null,
          "notify_url": "http://www.baidu.com",
          "return_url": "http://www.baidu.com"
        }
      }

提现订单查询 POST /shop_api/order/withdraw_order?trade_no=11112222

字段必填说明
trade_no平台代付单号
        //返回结果示例
        {
          "code": 0,
          "message": "操作成功",
          "data": {
            "id": 41,
            "trade_no": "1111_202512040918539843",
            "out_trade_no": "1996492059275563008",
            "name": "代付2706.00元",
            "username": null,
            "out_user_id": "",
            "extra": "",
            "timestamp": 1764836333,
            "status": "1",  //订单状态  1,2,3-进行中,4-成功,5-失败
            "paytime": null,
            "pay_image": null,
            "ip": null,
            "pay_type": "bankpay",
            "amount": "2706.00",
            "addtime": "2025-12-04 09:18:53",
            "endtime": null,
            "notify_url": "https://smglg.com/api/pay/channel/notify/ztPay/agent/notify",
            "code_account": "",
            "code_name": "",
            "code_image": "",
            "bank_name": "Mohamedd",
            "bank_card": "007010000679330040292585",
            "bank_code": "ATT"
          }
        }

在线调试 / 自动签名