BydaPay (1.0.0)

Download OpenAPI specification:Download

一、开发者指南

服务简介

  • BydaPay旨在向客户提供安全便捷的海外本地化支付服务,目前覆盖的区域和国家有:

    拉丁美洲:巴西、墨西哥、哥伦比亚

  • 可支持的服务包括:

    收款、退款、付款以及交易查询,另外我们也提供配套商户自助平台。客户只需要在自己的网站或APP内集成的需要的支付产品,即可拥有完整的在线收、付款能力。目前BydaPay支持本地钱包、信用卡支付,充分满足客户的需求。

  • 接入流程

    1.商务洽谈: 通过与我司商务前期的沟通,确定好合作方式及选择需要接入的服务和产品。

    2.登记材料获取账号: 在确定接入BydaPay产品后,将签约所需材料及商户申请表发送给我司商务,我们将会协助您完成商户的注册开通,并下发BydaPay商户自助平台的登录账号及密码。

    3.技术对接: 阅读技术文档

    4.技术联调: 由我司商务人员创建联调对接群,开展技术对接。

    5.验收上线: 联调完成后,向我司对接人员提供联调成功的订单信息,我司校验通过之后,完成生产环境开通。

    6.日常维护: 对接阶段完成,后续关注交易情况并进行日常维护即可。

账号申请说明

1. 获取商户自助平台账号

合作确认后,BydaPay为您创建可登录商户自助平台的管理员账号。

届时,请注意查收 BydaPay下发的邮件,接入方可根据邮件指引进行操作。 首次登录需要设置密码,请确保密码安全,以防外泄。

2. 获取商户号和密钥

接口联调所必需的参数:商户号(mchNo)应用ID(appId)密钥

签名使用的是SHA256WithRSA签名算法,需要商户自行生成公私钥信息,并将公钥通过商户管理平台上传,同时获取BydaPay的公钥。请妥善保管密钥信息,若不慎泄漏密钥,请及时更新密钥。

公钥配置入口为:「商户管理平台」-「商户中心」-「应用管理」-「修改」。


注意商户号、应用Id和密钥是配套的,需要区分测试环境与正式环境。

3. 配置异步通知地址

测试环境参数:

测试环境密钥将直接提供,请咨询BydaPay技术对接人员。

生产环境参数:

商户号会通过邮件进行发送,请注意查收 BydaPay下发的邮件。

应用ID和密钥请前往商户平台配置。

注意:正式环境密钥只可在合同有效期内生成。

请妥善保管密钥信息,若不慎泄漏密钥,请及时联系BydaPay运营人员中重置密钥。

通讯协议

标题 描述
传输方式 为保证交易安全性,采用HTTPS传输
提交方式 采用POST方法提交
数据格式 提交数据可为application/jsonapplication/x-www-form-urlencoded格式
返回数据都为application/json格式
字符编码 统一采用UTF-8字符编码
签名算法 签名算法 SHA256WithRSA
签名要求 请求和接收数据均需要校验签名
判断逻辑 先判断协议字段返回,再判断业务返回,最后判断交易状态

签名规则

RSA签名适用于所有通过API接口进行的请求。

1.加签前准备

设所有发送或者接收到的数据为集合M,将集合M内的非空参数按照参数名的ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串A。

特别注意以下重要规则:

1.参数名ASCII码从小到大排序(字典序);

2.参数名区分大小写;

3.验证调用返回或 BydaPay主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验;

4.BydaPay接口可能增加字段,验证签名时需要支持增加的扩展字段;

5.集合M内的空值null和空字符串("")不参与加签。

6.对于 BydaPay响应中data数据体,允许进行验签,详见验签示例。

7.接口会增加参数,请严格按照此规则签名及验证签名,不可写固定参数参与签名

8.RSA公私钥生成方式:https://www.toolscat.com/decode/rsa-publicKey-privateKey

path

2.加签示例(商户请求参数加签)

  假设原始请求参数如下params:
  params = {"amount":690,"extParam":"","mchOrderNo":"mho1697446079342","subject":"11","wayCode":"BDBR_PIX","reqTime":"1697446079","body":"测试商品","version":"1.0","expiredTime":"7200","channelExtra":{"documentNo":"00740886967","documentType":"CPF","phone":"+8613088976543","name":"Cliente - Isabela","email":"11@qq.com","productInfo":[{"goodsNo":"111112222233333","unitPrice":100,"totalPrice":100,"logistics":"顺丰快递","payer":"商品卖家","goodsType":"服饰箱包类","goodsPlace":"中国","goodsDes":"男士上衣","orderTime":"2022-08-04","logisticsNo":"SF1231231231231","goodsCurrency":"BRL","goodsName":"T恤","goodsNum":1}]},"appId":"6618e41ae4b0d33bdf78f4c2","clientIp":"192.166.1.132","notifyUrl":"https://test.bydapay.com//BydaPay-mock/mockNotify","signType":"RSA","currency":"BRL","returnUrl":"https://www.celer365.com","mchNo":"M1712907290"}

  排序后的数据如下sortParams:
  sortParams = amount=690&appId=6618e41ae4b0d33bdf78f4c2&body=测试商品&channelExtra={"documentNo":"00740886967","documentType":"CPF","phone":"+8613088976543","name":"Cliente - Isabela","email":"11@qq.com","productInfo":[{"goodsNo":"111112222233333","unitPrice":100,"totalPrice":100,"logistics":"顺丰快递","payer":"商品卖家","goodsType":"服饰箱包类","goodsPlace":"中国","goodsDes":"男士上衣","orderTime":"2022-08-04","logisticsNo":"SF1231231231231","goodsCurrency":"BRL","goodsName":"T恤","goodsNum":1}]}&clientIp=192.166.1.132&currency=BRL&expiredTime=7200&mchNo=M1712907290&mchOrderNo=mho1697446079342&notifyUrl=https://test.bydapay.com//BydaPay-mock/mockNotify&reqTime=1697446079&returnUrl=https://www.celer365.com&signType=RSA&subject=11&version=1.0&wayCode=BDBR_PIX

3.验签示例(商户接收 BydaPay服务端响应或回调通知)

注意:商户接收 BydaPay服务端响应验签仅需对 data 体中参数进行验签,回调通知直接对接收通知的请求参数进行验签即可。

如订单查询的响应为:

  假设服务端返回的原始数据如下result:
  result = "code=200, body={"code":0,"data":{"errCode":"","errMsg":"There is no means of payment\u00280\u0029","mchOrderNo":"mho1644657213749","orderState":3,"payOrderId":"P1492426648346505217"},"msg":"SUCCESS","sign":"EB2C0711601EE96029571717606B7841"}"

  需要参数验签的数据如下data:
  data = {"errCode":"","errMsg":"There is no means of payment\u00280\u0029","mchOrderNo":"mho1644657213749","orderState":3,"payOrderId":"P1492426648346505217"}

4.签名代码

签名方法调用:getSignByRsa ; 验证签名方法:verify

        /**
      * 获取签名串
      * 
      * @param map
      * @return urlParam.append(key).append("=").append( paraMap.get(key) == null ? "" :
      *         paraMap.get(key) );
      */
      public static String getStrSort(Map<String, Object> map) {
        ArrayList<String> list = new ArrayList<String>();
        for (Map.Entry<String, Object> entry : map.entrySet()) {
          if (null != entry.getValue() && !"".equals(entry.getValue())) {
            if (!"fileData".equals(entry.getKey()))
              list.add(entry.getKey() + "=" + entry.getValue() + "&");
          }
        }
        int size = list.size();
        String[] arrayToSort = list.toArray(new String[size]);
        Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < size; i++) {
          sb.append(arrayToSort[i]);
        }
        if (sb.length() > 0) {
          return sb.toString().substring(0, sb.length() - 1);
        } else {
          return sb.toString();
        }
      }

    public static PrivateKey getPrivateKey(String key) throws Exception {
        byte[] keyBytes = buildPKCS8Key(key);
        PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
        return privateKey;
      }
      

      
      /**
      * 公钥验签
      * 
      * @throws Exception
      */
      public static boolean doVerify(String content, String sign, String inputCharset, String pubKey)  {
        try {
          PublicKey hostPubKey = getPublicKey(pubKey);
          java.security.Signature signature = java.security.Signature.getInstance("SHA256WithRSA");
          signature.initVerify(hostPubKey);
          signature.update(content.getBytes(inputCharset));
          return signature.verify(Base64.decode(sign));
        } catch (Exception e) {
          e.printStackTrace();
          return false;
        }
      }
      
      
      public static PublicKey getPublicKey(String key) throws Exception {
        if (key == null) {
          throw new Exception("加密公钥为空, 请设置");
        }
        key = key.replaceAll("\\-{5}[\\w\\s]+\\-{5}[\\r\\n|\\n]", "");
        byte[] buffer = Base64.decode(key);
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(buffer);
        return keyFactory.generatePublic(keySpec);
      }


      
      private static byte[] buildPKCS8Key(String privateKey) throws IOException {
        if (privateKey.contains("-----BEGIN PRIVATE KEY-----")) {
          return Base64.decode(privateKey.replaceAll("-----\\w+ PRIVATE KEY-----", ""));
        } else if (privateKey.contains("-----BEGIN RSA PRIVATE KEY-----")) {
          final byte[] innerKey = Base64.decode(privateKey.replaceAll("-----\\w+ RSA PRIVATE KEY-----", ""));
          final byte[] result = new byte[innerKey.length + 26];
          System.arraycopy(Base64.decode("MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKY="), 0, result, 0, 26);
          System.arraycopy(BigInteger.valueOf(result.length - 4).toByteArray(), 0, result, 2, 2);
          System.arraycopy(BigInteger.valueOf(innerKey.length).toByteArray(), 0, result, 24, 2);
          System.arraycopy(innerKey, 0, result, 26, innerKey.length);
          return result;
        } else {
          return Base64.decode(privateKey);
        }
      }
      
      public static String doSign(String content, String inputCharset, String privKey) {
        try {
          // String systemPrivKeyStr = readFile();
          PrivateKey systemPrivKey = getPrivateKey(privKey);
          java.security.Signature signature = java.security.Signature.getInstance("SHA256WithRSA");
          signature.initSign(systemPrivKey);
          signature.update(content.getBytes(inputCharset));
          return Base64.encode(signature.sign());
        } catch (Exception e) {
          e.printStackTrace();
          return null;
        }
      }

      /**
      * 校验签名
      */
      public static boolean verify(Map<String, Object> map, String hostSignature, String pubKey)  {
        String signStr = getStrSort(map);
        _log.info("签名字符串[{}]", signStr);
        try {
          return doVerify(signStr, hostSignature, encodingCharset, pubKey);
        } catch (Exception e) {
          e.printStackTrace();
          return false;
        }
      }

        /**
      * 生成签名
      */
    public static String getSignByRsa(Map<String, Object> map, String key) {
        String result = getStrSort(map);
        if (_log.isDebugEnabled())
          _log.debug("signStr:{}", result);
        result = doSign(result, encodingCharset, key);
        if (_log.isDebugEnabled())
          _log.debug("signValue:{}", result);
        return result;
      }

接口说明

一、联调环境

环境 请求地址
测试环境(Test) https://test.bydapay.com/baydapay-payment/api/*
生产环境(Prod) 将以邮件的方式通知

二、接口列表

接口名称 请求地址 接口说明
收款请求 /pay/unifiedOrder 收款请求和付款请求的地址一致,两者的区别在于请求参数中wayCode和channelExtra等字段的值不同
付款请求 /pay/unifiedOrder
收银台 /pay/cashierOrder wayCode = BydaPay_CASHIER 使用此地址
交易查询 /pay/query 收款交易和付款交易的查询接口一致,用于查询订单详细信息
退款申请 /refund/refundOrder 用于对支付订单进行退款申请
退款查询 /refund/query 用于查询订单退款结果
以下接口仅适用于服务商
子商户进件 /merchant/add 采集商户信息并上传至BydaPay注册
子商户信息修改 /merchant/edit 修改子商户的信息
子商户状态查询 /merchant/query 可以用于查询进件结果和商户状态
文件上传 /merchant/addFile 用于进件时上传子商户的图片、文件类信息
子商户账户余额查询 /account/balance 用于查询子商户的账户余额
子商户账户余额提现 /account/cashout 服务商可代子商户发起提现
子商户提现订单查询 /refund/query 用于查询子商户提现订单的结果

国家与支付方式说明

请联系BydaPay技术服务人员获取

1.支持的国家/地区的支付方式如下:

国家/地区去 支付方式 对应的支付WayCode 测试环境交易结果说明
巴西 Pix BDBR_PIX 测试环境随机返回结果,可对订单查询获取结果
现金支付:Boleto LM_BOLETO
电子钱包支付:AME BDBR_AME
电子钱包支付:PicPay BDBR_PIC_PAY
电子钱包支付: Mercado Pago LM_MERCADO_PAGO
银行转账支付 LM_BANK_TRANSFER
本地信用卡支付 LM_CREDIT_CARD
墨西哥 现金支付:OXXO PA_MX_OXXO
电子钱包支付 PA_MX_WALLET
银行转账支付 BDMX_BANK
本地信用卡支付 MX_CREDIT_CARD
收银台 巴西、墨西哥等国家聚合收银台 BydaPay_CASHIER 根据界面提示内容填写正确信息即可返回成功

2.支付交互时序图

path

测试环境账号

  • 普通商户

签名方式:RSA
mchNo:M1712907290
appId:6618e41ae4b0d33bdf78f4c2

  • 商户公钥(生产环境请登录商户系统-应用列表配置)
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq+EIiMhRYxG49mxxS15V/S/KDTeOVMuQmYL8EoFZfUbe2oR070d0TBUi/DE2zrRX1IZ1EZB/KpOJ0QuzbMvDwmnbSNUiM1PXvsEZyHjLaixa6fUqccZMbCTestkvvhJBNr/DJKvCXdL/JrleLOkY8vxQfXKqiLLtVUsR4g2WG41UnDbY0YFKQ38cBqdxXQ/MiXkFuI9gaDIeWOBGj5bjxiLt0M7dL9/+MbS6X7xKYq7SWiR+ICVvZNij5bBXNEBW5oEMGqU0P0VRK14ESlw7YmA/Vp2aEB06WA0xrnz0bEcSTqtgvHKECmiu+aVMaOoUnGnLUmHp81m0F5k6k2pGewIDAQAB
  • 商户私钥
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCr4QiIyFFjEbj2bHFLXlX9L8oNN45Uy5CZgvwSgVl9Rt7ahHTvR3RMFSL8MTbOtFfUhnURkH8qk4nRC7Nsy8PCadtI1SIzU9e+wRnIeMtqLFrp9SpxxkxsJN6y2S++EkE2v8Mkq8Jd0v8muV4s6Rjy/FB9cqqIsu1VSxHiDZYbjVScNtjRgUpDfxwGp3FdD8yJeQW4j2BoMh5Y4EaPluPGIu3Qzt0v3/4xtLpfvEpirtJaJH4gJW9k2KPlsFc0QFbmgQwapTQ/RVErXgRKXDtiYD9WnZoQHTpYDTGufPRsRxJOq2C8coQKaK75pUxo6hScactSYenzWbQXmTqTakZ7AgMBAAECggEAU3BYG0bbs7Nbzk0Qptzx84pqlQX+U43K8asTwcwHbHimIQCiX7KZc4HjTPh7Odd0t9haJp+2DC45fkEm5k75Bn0rFe1Zv/8YwiKt6JMzdKR5sg/xffAdE3bGoZ4rviLQg8qN6lRzc+bFNMBSRo0WLodsb6nlvZzW+EwML2gXEeI7QtxaqkBWoSAJ0Umj+hyiZRFP/GekNdj5xdJZNcZJHMqM9UHwhb4IEGbW8uZcN5aU34eFpuHXbYTtAJS8CI6KP44WSEzDudagQR0bGZjxd0aE0xg/geTJw0Z2r2WuQIPUnLKKuIDLmTK/LEvT5te0RkKVUFjE/Qt2AuNmKcyyqQKBgQDe037Yp8zfkaZjoBXp93xuxB3++lWI6UliKOVUQ2D9yavIu1rbUkur39WBcAdaYMgk6TXOk8uY1lxH5mBdRyslTT9bvU++kR9mbGa8L89fz0MWN/S70bnZM4SaoQVozJdAeJfMa99CohoUzOltKxN2D+g/Sw0i6863L157E1GDTwKBgQDFd85Zga9z+gbJfzQGtfaoAKDrAD4Z+u26HPDz01b8kGlSrUqyvyaqR+cxlXyaWDe8AzLlBawgmxVyv7DRuS2ZtClVWve/7b62Kf9yeJTdDa/IkpwBROEd/Gdbte0LIqjJNtObLZW1eHIRfPlIDuPc6u7e0+/3zQh3AqB2s7EvFQKBgQDbanufsCxngi7ML1kk2JTpJak76RnNBZtDU23vOaIKhknoEcV37mOhTXoaSUyUTHUJE7PuRU7Yo0yfaFU/xNLRmm1nUtVxm8nFu7y2VoXnnFo9SMBvKifNn5NWCHUhK0VNMPKZUye3n5P7I4RAAYjaWvOhT7AR0Q3vCHAK1Y0QtQKBgQCZRCMaX8kBmHd6H8wOxV88CLjdjaOl4JhxkxMF/OwQPjoxXKWU1T66ffKZDrDWz0/7EvSGw/9Uk2pzVQt1zGfzW92VDXUsN+iFVVWa0LKiXIQqhnill4OvFYBXs33X3b/p5S8ay6feYS0QG9MUNdJwXrymoRMpX6+JR7WqTFBi/QKBgBpqbJ9bkW5QK6+O4G1fHiLTi0s5t2I2lJ84gqkkCQ69TwlBlnJdL9zpil8cWh7iCWjToic/x6BVN/PhKMo6hLJQBbYwFMlVyii/UR4KvTQZCY3HKqvwsPFynUw9sOXpP1b0AGvN41hsdGbQhbA/hBcDLbK/pAqPZi+AXLVQLrgX
  • BydaPay公钥
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAin6L7sbSapqKlDKzJkm9ztT98sH6sn/IggTr0AUN2jJIPZg6Xzi/t2rV/Bq8e8/xHE7IqkRZmLsIs8a4b+cel/NzcltKs/H9fWEq3o13MVA/ARokP5bqgIoFdHlnI8PRu+v8XdCZVKTxtgu4KIQV6HYyB6UhND4NyhqwsDC101MAuskxLVBMZfG9Og9RC3SysXCCzJrhsQNVUrdZ6boXf+2CyiACL/P+LADx8rs63uyAON2t6hjMfwgIMo2RWuP9rMPUP250UzWd/4gIrwpco4WdMeSbLqltHR3qUu6TPazVA5xgYz3Y7q84ffCBvXarVJmy2pwxd9VCohN8ayWgeQIDAQAB


  • 服务商:

签名方式:RSA
mchNo:M1713499234
isvNo:V1712908690
appId:6621ec6622526b33b8c0e4b0

  • 服务商公钥

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnXZU3ohkBcjYQi9R7NnnamfFvuH6NPaRzXDojIiuKv7LUpd2ofRRIOT2y8yVmrzWiAdiRTlsN6JXruZnHQoqqaEyy5HkXaC95fVo2NQXLbzzcQF5VbtXNYebWChv9mGIU1ezvat+4AsyVTmxNTBE4wFOMZTzcPdVh1yrUKRaKnWZ/c+/0K+WkifkZ3lFfas8jbgKmEoI2lPLhIB8FFm+cBOzN7QtQY5mA6GHYjOIqQHCWHh+NxpiK3vSZCzd43dDBuSgCmxVtiVD0VXINuu5kL0rD0YQFY4k1wobXn9rHKIIuB2WKhilgPrFFLUQ37wzoB/0LEzlazIAryWnak8uiwIDAQAB
  • 服务商私钥
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCddlTeiGQFyNhCL1Hs2edqZ8W+4fo09pHNcOiMiK4q/stSl3ah9FEg5PbLzJWavNaIB2JFOWw3oleu5mcdCiqpoTLLkeRdoL3l9WjY1BctvPNxAXlVu1c1h5tYKG/2YYhTV7O9q37gCzJVObE1METjAU4xlPNw91WHXKtQpFoqdZn9z7/Qr5aSJ+RneUV9qzyNuAqYSgjaU8uEgHwUWb5wE7M3tC1BjmYDoYdiM4ipAcJYeH43GmIre9JkLN3jd0MG5KAKbFW2JUPRVcg267mQvSsPRhAVjiTXChtef2scogi4HZYqGKWA+sUUtRDfvDOgH/QsTOVrMgCvJadqTy6LAgMBAAECggEBAJlrJ/nCTiJMtFiYHmx1S0KjZUo8hzp/W0Qd1JbIvVnq81O/e7kEgN9Z9xROex1PDH9xIlBsSIJUTLZ+is0CkNrB0uoBdc27xgp+d+97hjHsPg1G8F+VrrzbKYJVs/EMynTZqKkOpQnKHvpmwcAfDZ9YMEWi6SaR9eVzZv+lgqyGaMKsc2ufuhZy/wWp8Zt/Wu0JW7o1J5admGA32o4UdpIcpl3a5M9iYrCf3jJvp9QfAJsm3TV5ojuzkvSw1NL7YWaJ0zvIMHw+qDRkRuBKbkr33fcB1Zvh0KEOdVJ2/3eS/D3o0SfsLGpMbQJ3IrzcfcaGGmzWnJvVDO6gzJxzvCECgYEA6rlhgAreCCuqOn3aW4tGZ/vMn6t4v0tXnLeCDTbL5GM0Lb6kfSpog+bgpe6HY+jyadhScJUHnXXs0QfjXtPALOPaCPz9+px6Ds/8ZR38DEfRXVi7y6GzO2HalBcJEme3P4Cd4Bt4GtHLNUjo+if5bheuxDUVarRsVYApMn/jUrkCgYEAq7wjju/gwIeuqFirk+F4rpPoMPZrfvYWaikx/t/NnFCtzllgPrXt7mqVsumXC97QlWgrBe0Y2v6lZ+GduPArn2810UyFdJrOirdzXopuDxIA0NYwaXVG0/1CfXwwdZglS9TIDERP8MV1DQ3kM/PYUHATNYz4Xp23YpI4u7ZTOWMCgYA2/buD/gfKrkAxd+7CZ7zU+78S4V9mocYi5zNG2UGnfj5pQTLUSC04Sczz0xBRLfAtMAsQaTnhgBE9X7W7L6zkV3VriaoPHr3R3pRpND8quWCpl/JXYMjW7rQA4ey0LSxXalCSgpz+24vaLfy3LspXKqE9QpqD50VCOsZsGF4vsQKBgGAitskaUXeVvNkyogHrkxIvbCiUmYJ+IfgVzY3/HOunYlSERdN1JpdzhQ+dodecSKmKoaL0ohhdupxXeWKA1/qtV7QtoPuweXS/006WMZwwGNLPRFSUuSyMtr7mWX5KyH4VxFLRnuqKrsa7AwduNqZ4xtgQbS0SHwmID0hNfXM/AoGASGhoxQzphgQdR8xbcwkMLgo4iApjnJDfBEDv2W8BQmsgKeXbBINuMXU8Rf5Ul/r89dGA/TkZicN4dGb1YFGPB0kqZwqxeeH33+2TjmFlkLyeu1vc5WtW3KDBZmwOZrj+oKsEXGyibCI0SD0JdrxouhOirAyery1XzKufVtUeNGg=
  • BydaPay公钥
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAin6L7sbSapqKlDKzJkm9ztT98sH6sn/IggTr0AUN2jJIPZg6Xzi/t2rV/Bq8e8/xHE7IqkRZmLsIs8a4b+cel/NzcltKs/H9fWEq3o13MVA/ARokP5bqgIoFdHlnI8PRu+v8XdCZVKTxtgu4KIQV6HYyB6UhND4NyhqwsDC101MAuskxLVBMZfG9Og9RC3SysXCCzJrhsQNVUrdZ6boXf+2CyiACL/P+LADx8rs63uyAON2t6hjMfwgIMo2RWuP9rMPUP250UzWd/4gIrwpco4WdMeSbLqltHR3qUu6TPazVA5xgYz3Y7q84ffCBvXarVJmy2pwxd9VCohN8ayWgeQIDAQAB

BydaPay公钥说明

  • 测试环境:技术人员提供
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAin6L7sbSapqKlDKzJkm9ztT98sH6sn/IggTr0AUN2jJIPZg6Xzi/t2rV/Bq8e8/xHE7IqkRZmLsIs8a4b+cel/NzcltKs<br/>/H9fWEq3o13MVA/ARokP5bqgIoFdHlnI8PRu+v8XdCZVKTxtgu4KIQV6HYyB6UhND4NyhqwsDC101MAuskxLVBMZfG9Og9RC3SysXCCzJrhsQNVUrdZ6boXf+2CyiACL<br/>/P+LADx8rs63uyAON2t6hjMfwgIMo2RWuP9rMPUP250UzWd/4gIrwpco4WdMeSbLqltHR3qUu6TPazVA5xgYz3Y7q84ffCBvXarVJmy2pwxd9VCohN8ayWgeQIDAQAB
  • 生成环境:请联系我司商务

测试环境账号使用说明

交易币种

币种代码 币种名称 交易金额说明
BRL 巴西雷亚尔 交易金额为:100,表示实际金额为:1.00 BRL;最小支付金额:1.00 BRL
MXN 墨西哥比索 交易金额为:100,表示实际金额为:1.00 MXN;最小支付金额:0.01 MXN

注意事项

为了高支付成功率,强烈建议针对巴西区域支付方式验证CPF/CNPJ格式校验,参考如下:

针对java,添加依赖包

  <dependency>
      <groupId>br.com.caelum.stella</groupId>
      <artifactId>caelum-stella-core</artifactId>
      <version>2.1.2</version>
  </dependency>

代码调用

  //CPF校验
  Validator<String> validator = new CPFValidator();
  validator.assertValid("74013332220");
  //CNPJ校验
  Validator<String> validator = new CNPJValidator();
  validator.assertValid("743331220");

版本说明

版本 日期 说明 注意事项
V 2.29.0 2024.04.07 完善文档说明

二、收款服务介绍(PayIn)

收款请求

一、支付接口

1. 接口说明

请求地址 请参见 联调环境
接口路径 /pay/unifiedOrder

2. 请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
服务商号 isvNo V145455 请联系客户经理线下获取
商户号 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo String(30) 20160427210604001 商户生成的订单号
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式
商品标题 subject String(64) 商品标题测试 商品标题
商品描述 body String(256) 商品描述测试 商品描述
支付金额 amount int 100 支付金额,整数,根据币种确定单位
货币代码 currency String(3) 三位货币代码,见[币种说明]
支付方式 wayCode String(30) 支付方式,请咨询BydaPay技术服务人员获取
渠道参数 channelExtra json 参考请求参数channelExtra说明
客户端IP clientIp String(32) 210.73.10.148
异步通知地址 notifyUrl String(128) https://www.xxxx.com/notify 支付结果异步回调URL,只有传了该值才会发起回调
跳转通知地址 returnUrl String(128) https://www.xxxx.com/return 支付结果同步跳转通知URL
失效时间 expiredTime int 3600 订单失效时间,单位秒,实际失效时间以channelExtral为准 当wayCode=BDBR_PIX时 过期时间必填且在3700s到604800s内
扩展参数 extParam String(512) 134586944573118714 商户扩展参数,回调时会原样返回

3. 请求参数 channelExtra说明

【参数说明】

假设wayCode=BDBR_PIX,channelExtra = {“documentType”:“CPF”,“documentNo”: “332322”}

WayCode 字段名 变量名 必填 类型 示例值
BDBR_PIX (巴西PIX支付) 姓名 name String Cliente - Isabela
证件号类型 documentType String 固定值:CPF或者CNPJ
证件号 documentNo String 00740886967
邮箱 email String
电话 phone String 需要加区号,如:+8613088971111
LM_BOLETO (巴西现金支付:Boleto) 姓名 name String Cliente - Isabela
证件号类型 documentType String 固定值:CPF或者CNPJ
证件号 documentNo String 00740886967 CPF,11位数字
邮箱 email String
电话 phone String 需要加区号,如:+861308897
邮政编码 zipCode String 如巴西的CEP;04849333
state String 缩写,如圣保罗是SP
区县 district String 区县;Jardim Gaivotas
街道 street String 如:Rua 9 de setembro
城市 city String 如:sao paulo
门牌号 shopNumber String 如:15
BDBR_AME (巴西AME钱包支付) BDBR_PIC_PAY (巴西PicPay钱包支付) LM_MERCADO_PAGO (巴西MERCADO_PAGO钱包支付) LM_BANK_TRANSFER (巴西银行转账支付) 姓名 name String Cliente - Isabela
证件号类型 documentType String 固定值:CPF或者CNPJ CPF,11位数字
证件号 documentNo String 00740886967
邮箱 email String
电话 phone String 需要加区号,如:+8613088971111
BDMX_BANK (墨西哥银行转账支付) 姓名 name String 名字,全称
邮箱 email String
电话 phone String
LM_CREDIT_CARD (巴西本地信用卡支付) MX_CREDIT_CARD (墨西哥本地信用卡支付) 姓名 name String Pending
证件号类型 documentType String LM_CREDIT_CARD时,固定值:CPF或者CNPJ
证件号 documentNo String LM_CREDIT_CARD时填写00740886967
邮箱 email String MX_CREDIT_CARD时email和phone二选一
电话 phone String MX_CREDIT_CARD时email和phone二选一
需要加区号,如:+861308897
持卡人全称 cardHolderName String 如果cardToken缺省,则card信息不能为缺省
卡号 cardNumber String 16位纯数字字符串,不能有横杠空格等分隔符。
如果cardToken缺省,则card信息不能为缺省
4111111111111111
信用卡安全码 cvc String 123
信用卡有效期月份 expirationMonth Integer 2位数
如果cardToken缺省,则card信息不能为缺省
02
信用卡有效期年份 expirationYear Integer 4位数
如果cardToken缺省,则card信息不能为缺省
2028
卡Token cardToken String 信用卡订阅接口 获取信用卡Token ,如果card信息缺省,则cardToken不能为缺省
分期期数 installments String 通过创建分期方案接口 返回:期数,分期期数和分期计划ID都不为空时分期才有效
分期方案ID proposalId String 通过创建分期方案接口返回:分期期数和分期计划ID都不为空时分期才有效
PA_MX_OXXO (墨西哥现金支付:OXXO) 姓名 name String ClTest User Name
证件号 documentNo String 13位,测试参数:MAMB780915969
证件类型 documentType String 固定值:RFC
邮箱 email String
电话 phone String 测试参数:523135759140
邮政编码 zipCode String 5位数字,测试参数:37900
PA_MX_WALLET (墨西哥电子钱包支付) 姓名 name String ClTest User Name
证件号 documentNo String 13位数字,测试参数:MAMB780915969
证件类型 documentType String 固定值:RFC
邮箱 email String
电话 phone String 测试参数:523135759140
邮政编码 zipCode String 5位数字 ,测试参数:37900
钱包账号 accountNumber String
钱包账号验证码 accountVerificationCode String

请求示例数据, 实际参数需要结合扩展参数填写

{
  "amount":200,
  "extParam":"",
  "mchOrderNo":"mho1697446961395",
  "subject":"11",
  "wayCode":"BDBR_PIX",
  "sign":"JwGrqIehczHUYqLQBx3fDe9XIGfK1W9S5I3szCIjT+7ogB/mGQ2IBbvP9+WTTIOmrdUcSMaUikTqI78VhMsJOfa+xTxV4uICHpxywVvKhQYk6+Rszm0RS1cRqDYmI3ckCisrnAPNPnWnI2O2gAXocLvp59NgPkNt3JYKNSSzi/Hgl50OLJIdsxYIsHmTzXSPkRwO60KRUXuVusjRtOW1AUekvKkzIpyb8EHq4mOpDQ0gV8/ZExdFkhj2dYem8fn51en440pKTvcxtgzCnOC/0w6oT8APwSvmfcVS/l3EETjA1c/pcTU0CXrg1cjhE3cUFYWAi5wxJY4wX0XiAXB3KA==",
  "reqTime":"1697446961",
  "body":"测试商品",
  "version":"1.0",
  "expiredTime":"7200",
  "channelExtra":{
      "documentNo":"00740886967",
      "documentType":"CPF",
      "phone":"+8613088976543",
      "name":"Cliente - Isabela",
      "email":"11@qq.com",
      "productInfo":[
          {
              "goodsNo":"111112222233333",
              "unitPrice":100,
              "totalPrice":100,
              "logistics":"顺丰快递",
              "payer":"商品卖家",
              "goodsType":"服饰箱包类",
              "goodsPlace":"中国",
              "goodsDes":"男士上衣",
              "orderTime":"2022-08-04",
              "logisticsNo":"SF1231231231231",
              "goodsCurrency":"BRL",
              "goodsName":"T恤",
              "goodsNum":1
          }
      ]
  },
  "appId":"6618e41ae4b0d33bdf78f4c2",
  "clientIp":"192.166.1.132",
  "notifyUrl":"https://test.bydapay.com//BydaPay-mock/mockNotify",
  "signType":"RSA",
  "currency":"BRL",
  "returnUrl":"https://www.celer365.com",
  "mchNo":"M1712907290"
}

4. 响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(30) U12021022311124442600 返回支付系统订单号
商户订单号 mchOrderNo String(30) 20160427210604000490 返回商户传入的订单号
订单状态 orderState int 2 支付订单状态
0-订单生成
1-支付中
2-支付成功
3-支付失败
4-已撤销
5-已退款
6-订单关闭
7-争议(拒付)订单
支付数据类型 payDataType String payUrl codeUrl-二维码图片显示URL
payurl-跳转链接的方式
支付数据 payData String http://www.xxxxx.com/pay 发起支付用到的支付参数
商户总手续费 fee Long 支付成功才会返回,整数
支付服务手续费 serviceFee Long 221023新增,是商户总手续费中的一个费项,整数,此手续费退款时则不退此费项目
手续费币种 feeCurrency String USD
结算金额 settleAmount Long 整数,扣减商户总手续费后金额
结算币种 settleCurrency String USD
汇率 currencyPair String USD/THB-37.050980
渠道错误码 errCode String ACQ.PAYMENT_AUTH_CODE_INVALID 上游渠道返回的错误码
渠道错误描述 errMsg String Business Failed 失败 上游渠道返回的错误描述
渠道扩展参数 channelExtra JSON

返回示例数据


  {
      "code":"0",
      "data":{
          "mchOrderNo":"mho1697446961395",
          "orderState":1,
          "payData":"00020126890014BR.GOV.BCB.PIX2567api-pix.bancobs2.com.br/spi/v2/7dcc2b22-1e87-4b2f-bb8e-d4f983998b8752040000530398654042.005802BR5925LIQUIDO BRL PAGAMENTOS DI6014Belo Horizonte61083038040362070503***6304EF2F",
          "payDataType":"codeUrl",
          "payOrderId":"P1713842902087618561"
      },
      "msg":"SUCCESS",
      "sign":"XHceR+15kYUwSkISkKcJLWtwFuhqqIBdb0V8ah2UL4//FfCOejeLU0PxzooLn2jUrIABsQzv26V3xuyXO5CyUbAEMWeSrHBmWU3MTd02a81QCsaYxw42XLotYuKvQQ2/ndVNrwc1054at1/F5B2ED3kPmS4pt1eNivhC+SnDx7B9p50tSXITiqt4PQXKu24UJ1L5xue/lihuoFx9G/d4LBOZqWg7KM71GHWDqJidzUYoc0hFDkdNaindjObY2z0BWNrWgyChLNiCQ6dl8EPSnAce8eoMqkpc1o0NHV4oUMD1sEKw5Po5a1w5bzUyOnFom5uNlB6Ihlz2UG1hMOVPWw=="
  }

5. 返回参数 channelExtra说明

【参数说明】

当订单请求参数中的wayCode=APLUS_ORDER_CODE

返回参数channelExtra为:{"bigImage":"xxx","middleImage":"xxx","smallImage":"xxx"}

请求参数中的WayCode 字段名 变量名 必填 类型 回参说明
BDMX_BANK 支付的参考编号 bigImage String 墨西哥银行转账建议信息展示 ,示例映射对应关系 Banco = bankName; Número de cuenta CLABE = bankAccountNumber; Número de referencia = referenceNumber;
银行名称 bankName String
银行代码,3位数字 bankCode String
受益人名称 beneficiaryName String
受益人账号 bankAccountNumber String
受益人账号类型 bankAccountType String
LM_AME 调用Ame Digital app的链接 appCallLink String
ame方交易id ameTransactionId String
LM_BOLETO 数字线 digitalLine String
LM_PIC_PAY 过期时间 expirationTime String 0时区,示例:
2023-01-23T02:47:02-03:00
二维码的内容 qrContent String
LM_BANK_TRANSFER 银行分行Id bankBranchId String
银行代码,3位数字 bankCode String
受益人名称 beneficiaryName String
受益人账号 bankAccountNumber String
受益人账号类型 bankAccountType String ContaCorrente
ISPB ispb String 银行的ISPB, 用途和缩写bankCode一致, 8位数字
可确认身份的证件,CPF或CNPJ documentType String
LM_CREDIT_CARD
MX_CREDIT_CARD
card token cardToken String 当有此值返回时,下一次可以使用token替代卡信息

异步通知

1. 通知规范

1.1 同样的通知可能会多次发送给商户系统。商户系统须能够正确的处理重复通知。

1.2 后台通知交互时,如果 BydaPay 收到商户的应答不符合规范或超时,BydaPay 会判定本次通知失败,重新发送通知,直到成功为止(在通知一直不成功的情况下,BydaPay 总共会发起多次通知,通知频率为0s/30s/60s/90s/120s/150s,- 总计6次),但 BydaPay 不能保证通知最终一定能成功。

1.3 在订单状态不明或者没有收到BydaPay支付结果通知的情况下,建议商户主动调用 BydaPay 收款的【交易查询】确认订单状态。

1.4 只有交易成功或者争议订单会有异步通知。

注意:商户业务系统处理通知后需同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败。返回的字符串必须是小写,且前后不能有空格和换行符。

2. 通知参数(支付结果)

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(30) P12021022311124442600 返回支付系统订单号
商户号 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo String(30) 20160427210604000490 返回商户传入的订单号
支付方式 wayCode String(30) 支付方式
支付金额 amount int 200 支付金额,单位分
货币代码 currency String(3) cny 三位货币代码,人民币:cny
订单状态 state int 2 支付订单状态
0-订单生成
1-支付中
2-支付成功
3-支付失败
4-已撤销
5-已退款
6-订单关闭
7-争议(拒付)订单
客户端IP clientIp String(32) 210.73.10.148 客户端IPV4地址
商品标题 subject String(64) 商品标题测试 商品标题
商品描述 body String(256) 商品描述测试 商品描述
渠道订单号 channelOrderNo String 20160427210604000490 对应渠道的订单号
商户总手续费 fee Long 整数,成功才会返回
支付服务手续费 serviceFee Long 商户总手续费中的一个费项,整数,此手续费退款时不退
手续费币种 feeCurrency String USD
结算金额 settleAmount Long 整数,扣减商户总手续费金额
结算币种 settleCurrency String USD
汇率 currencyPair String USD/THB-37.050980
渠道错误码 errCode String 1002 渠道下单返回错误码
渠道错误描述 errMsg String 134586944573118714 渠道下单返回错误描述
扩展参数 extParam String(512) 134586944573118714 商户扩展参数
创建时间 createdAt ong 622016572190 订单创建时间,13位时间戳
成功时间 successTime long 1622016572190 订单支付成功时间,13位时间戳
通知请求时间 reqTime String(30) 1622016572190 通知请求时间,,13位时间戳
签名方式 signType String(32) RSA RSA
签名 sign String(32) CCD9083A 签名值,详见签名算法
钱包名称 walletBrandName String
钱包支付用戶id userId String

3. 示例代码


  {
      "payOrderId":"P1710927940298076162",
      "mchOrderNo":"20231008075941-2030090-BydaPay-1710927932163059713-2017626",
      "subject":"TVE Monthly",
      "fee":28,
      "settleAmount":920,
      "sign":"ZA2dQtSS9+AsDFdziybT6omfcgCTOFNPRBSHdJL9gPve0EndPIqNQ00JmLJIeYCH3U9xNUtJ8309VAnRlG69KGimVubuGpURgGVDLf5YTIv+yYe2EKrV9eRQpo2oVjtFUfxpIqB4u1sme4da5kmO5dk/G4uOXKc5ACLj28veEwjV6vmp9nq4U0B1uWsSgQG9Vs0cSPA6WTdKiZ/yIAOWTYUH/qWAjq3tkEelSkzgQpFO75C3Yf8oist6oHthMrK/CUmJSyQOiBekcPQNZsXj4iy2iu3LDMMq+/JAf/TgmJdbm6wLF8eLaCJNdG91TRc1vqugdnQw7c1/mx3Ackkngw==",
      "feeCurrency":"USD",
      "reqTime":1696752067481,
      "body":"WANEL-COMMON-BODY",
      "createdAt":1696751983129,
      "appId":"6618e41ae4b0d33bdf78f4c2",
      "successTime":1696752066000,
      "signType":"RSA",
      "currency":"BRL",
      "state":2,
      "mchNo":"M1712907290",
      "serviceFee":28,
      "amount":5000,
      "currencyPair":"USD/BRL-5.275775",
      "settleCurrency":"USD",
      "wayCode":"LM_PIX",
      "checkDate":"20231008",
      "clientIp":"104.28.192.13"
  }

4. 通知参数(退款结果)

字段名 变量名 必填 类型 示例值 描述
退款订单号 refundOrderId String(30) R12021022311124442600 返回支付系统的退款订单号
原支付订单号 payOrderId String(30) P12021022311124442600 返回支付系统的原支付订单号
商户号 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户退款单号 mchRefundNo String(30) 20160427210604000490 返回商户传入的订单号
原支付金额 payAmount int 200 支付金额,单位分
退款金额 refundAmount int 200 支付金额,单位分
货币代码 currency String(3) cny 三位货币代码,人民币:cny
订单状态 state int 2 0-订单生成
1-退款中
2-退款成功
3-退款失败
渠道退款订单号 channelOrderNo String 20160427210604000490 对应渠道的单号
渠道错误码 errCode String 1002 渠道下单返回错误码
渠道错误描述 errMsg String 134586944573118714 渠道下单返回错误描述
扩展参数 extParam String(512) 134586944573118714 商户扩展参数
成功时间 successTime long 1622016572190 订单支付成功时间,13位时间戳
创建时间 createdAt ong 622016572190 订单创建时间,13位时间戳
退款手续费 refundFeeAmount Long 整数,成功才会返回
退款手续费币种 refundFeeCurrency String USD
通知请求时间 reqTime String(30) 1622016572190 通知请求时间,,13位时间戳
签名方式 signType String(32) RSA RSA
签名 sign String(32) CCD9083A 签名值,详见签名算法

3. 示例代码


  {
    "payOrderId": "P1739843217353908226",
    "extParam": "",
    "sign": "b1Wj78T+UBu+u5v3QFJWt2sOCjv/lR9mjriF8DzSBZsCtpr8IqwpleTYKNer+ZTFxE6LY1tviJFKxOn8rK4bHeIW7wYnDkiSe+pm3IjJAYa75PSQtKjKg0/d/QrhjCdIGzZGQIbtXN5o8rnb4LfRLT9sVYWAr0Xx5TkfSo26UVGewJwQOz+VeDvYd3h2rs2kLPmgnkgjk4F1jxJLtLRU/f+RqP7hvIK4CH0q7y/dZtgUEpnXvU7/eq3TR0FXlBpbtkicq7OnOEpQRAYbqJ6LyTSYMSck6o1qHu4MbCtSr8libWPA6xpr043xtun986pAZFjSYEAYxBlmPLM8Hpao6Q==",
    "reqTime": 1703828451247,
    "refundOrderId": "R1740608436451786754",
    "createdAt": 1703828364831,
    "payAmount": 2780,
    "appId": "63045ca7ec2e9653affc2080",
    "mchRefundNo": "mho1703828351794",
    "refundFeeAmount": 10,
    "successTime": 1703828451000,
    "currency": "BRL",
    "state": 2,
    "mchNo": "M1712907290",
    "refundAmount": 2780
  }

收款交易查询

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /pay/query

2.请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo String(30) M1621873433953 商户号
服务商号 isvNo V145455 请联系客户经理线下获取
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
支付订单号 payOrderId String(30) P20160427210604000490 支付中心生成的订单号,与mchOrderNo二者传一即可
商户订单号 mchOrderNo String(30) 20160427210604000490 商户生成的订单号,与payOrderId二者传一即可
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
签名 sign String(32) CCD9083A 签名值,详见签名算法
签名类型 signType String(32) RSA 签名类型,目前只支持RSA

请求示例数据

  {
      "payOrderId":"P1713846834985816066",
      "appId":"6618e41ae4b0d33bdf78f4c2",
      "sign":"CAxIYw3uzoSDBhEq8fZEkf06+R93P5BZl2wfwUCztsX3wQ13nlN2OFd1TAj+wZNl+6ggeSZusYLKnJIrT6TmpIY8nhjDaQf/hF39ik+jN2ugmJdrsSF4Ho8fB4DSWX/uT2d6iQZ6mT7GEUGfq/3JOfQoMwrg1lqh59ppcDvEUHKa5F6nRHOXBBlB5bvQo7aRA7TUwZkwpgrdoCiIXw7qWaUGiyggDhuWTSoa8tXAqK7pnAiuFuL3X3+BgSJlYXV4T5m8+TC/BUy7voBmIIUTMfjEUEo9lKe6AbW/ln3Q+VxQg+pecjmuk64yYPOs88oSR4hcqISl+Xb5Y2JC4S8qwg==",
      "signType":"RSA",
      "reqTime":"1697448024",
      "mchNo":"M1712907290",
      "version":"1.0"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0处理成功,其他:处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(30) P12021022311124442600 返回支付系统订单号
商户 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo String(30) 20160427210604000490 返回商户传入的订单号
支付方式 wayCode String(30) 支付方式
支付金额 amount int 100 支付金额,单位分
货币代码 currency String(3) cny 三位货币代码,人民币:cny
订单状态 state int 2 支付订单状态 0-订单生成
1-支付中处理中
2-支付成功
3-支付失败
4-已撤销
5-已退款
6-订单关闭
7-争议(拒付)订单
商品标题 subject String(64) 商品标题测试 商品标题
商品描述 body String(256) 商品描述测试 商品描述
客户端IP clientIp String(32) 210.73.10.148 客户端IPV4地址
渠道订单号 channelOrderNo String 20160427210604000490 对应渠道的订单号
渠道错误码 errCode String 1002 渠道下单返回错误码
渠道错误描述 errMsg String 业务异常错误 渠道下单返回错误描述
扩展参数 extParam String(512) 134586944573118714 商户扩展参数,回调时会原样返回
创建时间 createdAt long 1622016572190 订单创建时间,13位时间戳
成功时间 successTime long 162201657210 订单支付成功时间,13位时间戳
商户手续费 fee Long 整数
手续费币种 feeCurrency String USD
结算金额 settleAmount Long 整数
结算币种 settleCurrency String USD
钱包名称 walletBrandName String
钱包支付用戶id userId String

返回示例数据

  {
    "code":0,
    "data":{
        "serviceFee":5,
        "amount":200,
        "payOrderId":"P1713846834985816066",
        "extParam":"",
        "mchOrderNo":"mho1697447899122",
        "subject":"11",
        "settleAmount":33,
        "wayCode":"LM_PIX",
        "body":"测试商品",
        "checkDate":"20231016",
        "createdAt":1697447901853,
        "appId":"6618e41ae4b0d33bdf78f4c2",
        "clientIp":"192.166.1.132",
        "signType":"RSA",
        "currency":"BRL",
        "state":1,
        "mchNo":"M1712907290"
    },
    "msg":"SUCCESS",
    "sign":"Hru35RWBrGq3mF0/dy1WppKW+beAEDdrJfKFjVHkqeXTbdhu2V1Y1GnzbL58iS3DMy93CvFU0Klha27kYQn1ylBtfqAKmBvn5n+uxxoow2viUB/xhGkz4B8Qr1usIJajPY3a8k7+pF18g8zQW3spB0GV76zxiuSKNkXzge/nXvUHDDA558bXgj+EhDrM1LpIPA0dKAK0vmA14h75Yw2Iaj9plCthSiWtttf93h6966HXHS3yWvRe4u1ppzcBPjqNS1aea2pmslEjkfiy2wGON7W+UZz+AD2B2RrFyL5xD2cBIxWL30vx2wEPFw3jMJ+CoRZeyzPNDWNbJZOB45oBcA=="
  }

退款申请

商户业务系统通过统一退款接口发起退款请求,支付网关会根据商户发起的支付订单号,找到对应到支付通道发起退款。

1.接口说明

标题 要求
请求地址 请参见 联调环境
接口路径 /refund/refundOrder

2.请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo String(30) M1621873433953 商户号
服务商号 isvNo V145455 请联系客户经理线下获取
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
支付订单号 payOrderId String(30) P20160427210604000490 支付中心生成的订单号,与mchOrderNo二者传一即可
商户订单号 mchOrderNo String(30) 20160427210604000490 商户生成的支付订单号,与payOrderId二者传一即可
商户退款单号 mchRefundNo String(30) M27210632100491 商户生成的退款单号
退款通知地址 notifyUrl String https://xxx.cn 不传则不做异步通知,退款成功和失败都会异步
退款金额 refundAmount int 100 退款金额,单位分
退款原因 refundReason String(64) 用户退货 退款原因
扩展参数 extParam String(512) 134586944573118714 商户扩展参数,回调时会原样返回
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
签名 sign String(32) CCD9083A 签名值,详见签名算法
签名类型 signType String(32) RSA 签名类型
客户端IP clientIp String(32) 210.73.10.148 客户端IPV4地址
渠道参数 channelExtra String(256 {“auth_code”, “13920933111042”} 特定渠道发起的额外参数,json格式字符串.详见渠道参数说明

请求示例数据

  {
      "payOrderId":"P1713846834985816066",
      "extParam":"",
      "mchOrderNo":"",
      "refundReason":"退款测试",
      "sign":"p7HjgeSrvQ92F6Iyoex0OVxVUf6OYl0qPG9py6RSQ+suxgdi1QEmfhw38WV8VlnMZUUgrs+mHxuu18mh2UOUotAtlzm3lSaTx2DLX+IUXoiQ4FlVcoYQ4K6ZO80fDWTLrk1dug7vkzUIVK2W+BhEkv5C7vuOQh7QBi8nNnWDfKb9yhkM3O8CcXRTErSdCEKzr7DgzmsfVVk/b0/SOsr3Hnsdf8DA/Cc9nhFcHymZ1lUGuHF8OrwzwA+iYbI8pQwo3KG+xFZNCbRKds9gdY0318ocdjySV/gYILlTu+Z9CqN3ap3u/9TVD7DPztejul0OA5G6FJ4OiNI4nxCyPt6SXg==",
      "reqTime":"1697448421",
      "version":"1.0",
      "channelExtra":"",
      "appId":"6618e41ae4b0d33bdf78f4c2",
      "mchRefundNo":"mho1697448421669",
      "clientIp":"192.166.1.132",
      "notifyUrl":"https://test.bydapay.com//BydaPay-mock/mockNotify",
      "signType":"RSA",
      "mchNo":"M1712907290",
      "refundAmount":200
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
退款订单号 refundOrderId String(30) R202106181708358940000 返回退款订单号
商户退款单号 mchRefundNo String(30) mho1624007315478 返回商户传入的退款单号
退款状态 state int 2 退款状态
0-订单生成
1-退款中
2-退款成功
3-退款失败
4-退款关闭
渠道退款单号 channelOrderNo String 20160427210604000490 对应渠道的退款单号
退款手续费 refundFeeAmount Long
退款手续费币种 refundFeeCurrency String USD
渠道错误码 errCode String ACQ.PAYMENT_AUTH_CODE_INVALID 上游渠道返回的错误码
渠道错误描述 errMsg String Business Failed 失败 上游渠道返回的错误描述

返回示例数据

  {
      "code":"0",
      "data":{
          "mchRefundNo":"mho1697448421669",
          "payAmount":200,
          "refundAmount":200,
          "refundFeeCurrency":"USD",
          "refundOrderId":"R1713849025058426882",
          "state":1
      },
      "msg":"SUCCESS",
      "sign":"AF4n9eWKCt8KIi/WdnzyPDzTseukXN+fEG+R3uHmz4eFL7lM7etM5RmC3cw5B+Rohi6xDEza6xf2vKvwlvVf/gNEHHNBkEV9f03/aNLiRvGFeP3X+5TkBvxAQPmJg1+/CAmmZ2Z9XRlYBNMIs8x4fLe4oRwRJ557ojDQOEK0o9sSDbgmzpLBibTiDVvUe4op5KIH1JcSXpvG7+LC3r8TrL/D3tPi39UCYkMGAntbLy8b189SgUG7iTDix7c9XP5eQS0qXH+q5mwhOAQ4xZjYE8gNrZ2k3EG11j4Bdhgx4Abv0uBKE2LK248lRNo6iuQg4Q8/hXkm4aRllTzMrkrPNA=="
  }

退款查询

商户通过该接口查询退款订单,支付网关会返回订单最新的数据

1.接口说明

标题 要求
请求地址 请参见 联调环境
接口路径 /refund/query

2.请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
退款订单号 refundOrderId String(30) R20160427210604000490 支付中心生成的退款单号,与mchRefundNo二者传一即可
商户退款单号 mchRefundNo String(30) 20160427210604000490 商户生成的退款单号,与refundOrderId二者传一即可
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
签名 sign String(32) CCD9083A 签名值,详见签名算法
签名类型 signType String(32) RSA 签名类型,目前只支持RSA方式

请求示例数据

  {
      "refundOrderId":"R1713849025058426882",
      "appId":"6618e41ae4b0d33bdf78f4c2",
      "sign":"cfxrxK2gvfyTv89vGav/Wi6CBaWdwtDdsRib13CDu6+ZwCytijita8xcB0BrEP4Hk8zr+mrIpSiX64YjRkGFovU6qqJFcwcuIHiIcMkAgNz2WXQWiouC/oxUH11HR97+7+fR+rAVgH/rVTnvWn+R5HgI9YVkvHuQAbvWeIjN90/O+XNjc0ACvQiB/KAhpxzJvN2TqSCcbRFLy8wFl4IjmQ8n+OaZsOI5D4uR11P9ePgID37ifEQU3lW44cVePWCdK6EAqdLt2GIgnjdZY8EVSD4pGE45chVo69IXg8Hzeda89PN0gUiAHj9M5vH3KQzje4JJYycW6aUcN3aKDfSCCw==",
      "signType":"RSA",
      "reqTime":"1697448565",
      "mchNo":"M1712907290",
      "version":"1.0"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
退款订单号 refundOrderId String(30) R20160427210604000490 支付中心生成的退款单号
支付订单号 payOrderId String(30) P12021022311124442600 返回支付系统订单号
商户号 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户退款单号 mchRefundNo String(30) 20160427210604000490 商户生成的退款单号
支付金额 payAmount int 100 支付金额,单位分
退款金额 refundAmount int 100 退款金额,单位分
货币代码 currency String(3) cny 三位货币代码,人民币:cny
退款手续费 refundFeeAmount Long
退款手续费币种 refundFeeCurrency String USD
退款状态 state int 2 退款状态
0-订单生成
1-退款中
2-退款成功
3-退款失败
4-退款关闭
渠道订单号 channelOrderNo String 20160427210604000490 对应渠道的订单号
渠道错误码 errCode String 1002 渠道返回错误码
渠道错误描述 errMsg String 134586944573118714 渠道返回错误描述
扩展参数 extParam String(512) 134586944573118714 商户扩展参数,回调时会原样返回
创建时间 createdAt long 1622016572190 订单创建时间,13位时间戳
成功时间 successTime long 1622016572190 订单支付成功时间,13位时间戳

返回示例数据

  {
      "code":0,
      "data":{
          "refundOrderId":"R1713849025058426882",
          "createdAt":1697448424006,
          "payOrderId":"P1713846834985816066",
          "payAmount":200,
          "extParam":"",
          "appId":"6618e41ae4b0d33bdf78f4c2",
          "mchRefundNo":"mho1697448421669",
          "currency":"BRL",
          "state":2,
          "mchNo":"M1712907290",
          "refundAmount":200
      },
      "msg":"SUCCESS",
      "sign":"Kz1QxIQfXOzYnt5/OPlY1o/+OqXGX5OqXHAd5YcATekRGTvV9T90x8mDgSIwcYB3IoRxeaoetbWK8owWO0QgNHHvZWqOozTlhecvbx7YtP1U8R1idKmi5GiBDcupB/Fi20fDvx+yf1IFeQibl9TFhOD+CGk6L3Xqtn96Et1NaO8XCwepO0THNx2k/sGD+ktmX3HBa5lCjrrNmeU8PTO2yvMhUm8DVMdNp6BFVWvqZQQIKlyyUg76XrPRMZBayKrEk51YbEhbmzf2mo++u9kWOJPNPnLI22l3REnA2HiXto205jUIXZK6ofJiUGIzweRO32Q5+EffxUpSFTHIIScVvw=="
  }

三、付款服务介绍(PayOut)

付款请求

一、支付接口

1. 接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /pay/unifiedOrder

2. 请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
服务商号 isvNo V145455 请联系客户经理线下获取
商户号 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo String(30) 20160427210604001 商户生成的订单号
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式
商品标题 subject String(64) 商品标题测试 商品标题
商品描述 body String(256) 商品描述测试 商品描述
支付金额 amount int 100 支付金额,整数,根据币种确定单位
货币代码 currency String(3) 三位货币代码,见附件说明
支付方式 wayCode String(30) 支付方式,请咨询BydaPay技术服务人员获取
渠道参数 channelExtra json 参考请求参数channelExtra说明
客户端IP clientIp 特殊可空 String(32) 210.73.10.148 客户端IPV4地址,选择微信支付时必传
异步通知地址 notifyUrl String(128) https://www.xxxx.com/notify 支付结果异步回调URL,只有传了该值才会发起回调
跳转通知地址 returnUrl String(128) https://www.xxxx.com/return 支付结果同步跳转通知URL
失效时间 expiredTime int 3600 订单失效时间,单位秒,实际失效时间以channelExtral为准
当wayCode=BDBR_PIX时 过期时间必填且在3700s到604800s内
扩展参数 extParam String(512) 134586944573118714 商户扩展参数,回调时会原样返回

3. 请求参数 channelExtra说明

【参数说明】

假设wayCode=APLUS_CASHIER,channelExtra = {“terminalType”:“WEB”,“osType”: “IOS”}

WayCode 字段名 变量名 必填 类型 示例值
BDBR_PIX_OUT (巴西付款:向收款人的PIX账户付款) Pix密钥类型 targetPixKeyType String Pix密钥类型,枚举值为 "cpf" "email" "phone" "evp"
Pix密钥 targetPixKey String Pix密钥:11013601513
账户持有人的证件号 documentNo String 目标账户持有人的证件号CPF,11位数字:11013601513
目标账号持有人的全名 name String 目标账号持有人的全名.如果设置了lastName,此处只需要填写
First Name:Joice M Santos Joice Mary Santos
目标账号持有人Last Name lastName String 目标账号持有人Last Name
目标账号持有人的邮箱 email String
目标账号持有人的电话 phone String
BDMX_SPEI_OUT (墨西哥付款:向收款人的SPEI账户付款) 目标账号持有人的全名 name String 目标账号持有人的全名.如果设置了lastName,此处只需要填写
First Name:Joice M Santos Joice Mary Santos
目标账号持有人Last Name lastName String 目标账号持有人Last Name
目标账号持有人的邮箱 email String 证件号与邮箱二选一必要一项
账户持有人的证件号 documentNo String 目标账户持有人的证件号
目标账号的账号ID targetBankAccountId String 对于SPEI,是目标账号的CLABE号码

请求示例数据, 实际参数需要结合扩展参数填写

  {
      "amount":100,
      "extParam":"",
      "mchOrderNo":"mho1697449351770",
      "subject":"商品标题",
      "wayCode":"BDBR_PIX_OUT",
      "sign":"q1kZNi5hY9OPUhHWnpeAxe9lfs1qBW93QwlVfNFj+xHWt5sdhUs+0f8XeKKB3C+7q0Ww6HYCR/xx1vYdRRf8rH3EWpRF9ytm7o5B7U7O+QCaFmJ6GvYxRBOglJeJmslOUQhEecK5LQhh9UOW5pWZbFbiNS43LA/yIvAqfe9OTxEFJuA+chrPI7ohvaipsq6BFYJDG4HfKSJV0Kb0OvxovyQd+pYAR5kfzW7p0prIkIcmrv1L6+zmCMMe4zVcu8QcLQzOvMAdUo5P1zB+miKkeBZW4VQAungXwtavKvxIF4XaOnetkBAdDJsK0D+Z/oR6ijkSyR62YxM91DqZQifsZg==",
      "reqTime":"1697449351",
      "body":"商品描述",
      "version":"1.0",
      "channelExtra":{
          "targetPixKey":"yangj@celer365.com",
          "documentNo":"11013601513",
          "targetPixKeyType":"email",
          "name":"Joice M Santos Joice Mary Santos"
      },
      "appId":"634fd9d8ec2e49660f569e44",
      "clientIp":"192.166.1.132",
      "notifyUrl":"http://ci.celer365.com/BydaPay-mock/mockNotify",
      "signType":"RSA",
      "currency":"BRL",
      "returnUrl":"https://www.celer365.com",
      "mchNo":"M1666177496"
  }

4. 响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(30) U12021022311124442600 返回支付系统订单号
商户订单号 mchOrderNo String(30) 20160427210604000490 返回商户传入的订单号
订单状态 orderState int 2 支付订单状态
0-订单生成
1-支付中
2-支付成功
3-支付失败
4-已撤销
5-已退款

7-争议(拒付)订单
支付数据类型 payDataType String payUrl codeUrl-二维码图片显示URL
支付数据 payData String http://www.xxxxx.com/pay 发起支付用到的支付参数,如果微信公众号支付等
商户手续费 fee Long 整数
手续费币种 feeCurrency String USD
结算金额 settleAmount Long 整数
结算币种 settleCurrency String USD
汇率 currencyPair String USD/THB-37.050980
渠道错误码 errCode String ACQ.PAYMENT_AUTH_CODE_INVALID 上游渠道返回的错误码
渠道错误描述 errMsg String Business Failed 失败 上游渠道返回的错误描述
渠道扩展参数 channelExtra JSON 参考返回参数 channelExtra说明

5. 返回参数 channelExtra说明

【参数说明】

当订单请求参数中的wayCode=APLUS_ORDER_CODE

返回参数channelExtra为:{"bigImage":"xxx","middleImage":"xxx","smallImage":"xxx"}

请求参数中的WayCode 字段名 变量名 必填 类型 回参说明
BDMX_BANK 支付的参考编号 referenceNumber String 墨西哥银行转账建议信息展示 ,示例映射对应关系
Banco = bankName;
Número de cuenta CLABE = bankAccountNumber;
Número de referencia = referenceNumber;
银行名称 bankName String
银行代码,3位数字 bankCode String
受益人名称 beneficiaryName String
受益人账号 bankAccountNumber String
受益人账号类型 bankAccountType String
LM_AME 调用Ame Digital app的链接 appCallLink String
ame方交易id ameTransactionId String
LM_BOLETO 数字线 digitalLine String
LM_PIC_PAY 过期时间 expirationTime String 0时区,示例:
2023-01-23T02:47:02-03:00
二维码的内容 qrContent String
LM_BANK_TRANSFER 银行分行Id bankBranchId String
银行代码,3位数字 bankCode String
受益人名称 beneficiaryName String
受益人账号 bankAccountNumber String
受益人账号类型 bankAccountType String ContaCorrente
ISPB ispb String 银行的ISPB, 用途和缩写bankCode一致, 8位数字
可确认身份的证件,CPF或CNPJ documentType String
LM_CREDIT_CARD
MX_CREDIT_CARD
card token cardToken String 当有此值返回时,下一次可以使用token替代卡信息

返回示例数据

  {
      "code":"0",
      "data":{
          "mchOrderNo":"mho1697449351770",
          "orderState":1,
          "payDataType":"none",
          "payOrderId":"P1713852926008610817"
      },
      "msg":"SUCCESS",
      "sign":"UMt/2wexBnZ3/yfOMv6e4NE7Os+xK+yfXy9z1+QMfw0cbbS4EQ4NdBaviBbORdi4UcMwGIufJRSiF8m1DS/i7od0m0jeXVni5oNcubJNuqhGj1yehoJDf2WgUkyLHKWi2+3fyB2bsvme7sk9XP3gmxBbE3cCerIigdFSL6/niHT3r7MO7M8X5Fcb/BdZRlVb+UOo7ETeQKc4NujNCjbR56RGl1UnW8zA9hcI30NxJ08f2pRzV9XJhMnvf8EPGaVFT5Rlj01j3pB5TVvjkdPRBmNTt08TvSo8Y8VAdqr2uIjJrbh61RnJUGc3CTApNq3TwW9yKiTYB2ylxfKloNZliA=="
  }

付款查询

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /pay/query

2.请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo String(30) M1621873433953 商户号
服务商号 isvNo V145455 请联系客户经理线下获取
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
支付订单号 payOrderId String(30) P20160427210604000490 支付中心生成的订单号,与mchOrderNo二者传一即可
商户订单号 mchOrderNo String(30) 20160427210604000490 商户生成的订单号,与payOrderId二者传一即可
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
签名 sign String(32) CCD9083A 签名值,详见签名算法
签名类型 signType String(32) RSA 签名类型,目前只支持RSA

请求示例数据

  {
      "payOrderId":"P1713852926008610817",
      "appId":"634fd9d8ec2e49660f569e44",
      "sign":"YizTuYz6rb5mNqAMhbBVdGPPoD0DlrhHtiwtXeFOwO7p91BChYSnN8+RxJF1YzA4qBJL9DulsjQCcM1fNa0ESs7TAD79muwJ57ACGa9iFqqlgAn5yIwsPphiAzirSKKbQu4tLtP0rHx5/uBidFIRhHzxZTckMZO/NPA1cpQmIc47Q2r3QM89vGtDLbdg3mzP9LniIZljY9Ign8ZPwWHMFLIhgzezf11O7wLzRFTQIvYtd1lSkiiQq55YOMaL/QvtfcFfDhwGM6Zwele+A6FVCSJbu9jMxHkQTtYtp+c5ZEzUUVJ8B8fR7T1APRNUkL6QNVvL210ODErXNEFklYt7Lg==",
      "signType":"RSA",
      "reqTime":"1697449493",
      "mchNo":"M1666177496",
      "version":"1.0"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0处理成功,其他:处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(30) P12021022311124442600 返回支付系统订单号
商户 mchNo String(30) M1621873433953 商户号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo String(30) 20160427210604000490 返回商户传入的订单号
支付方式 wayCode String(30) 支付方式
支付金额 amount int 100 支付金额,单位分
货币代码 currency String(3) cny 三位货币代码,人民币:cny
订单状态 state int 2 支付订单状态 0-订单生成
1-支付中处理中
2-支付成功
3-支付失败
4-已撤销
5-已退款

7-争议(拒付)订单
商品标题 subject String(64) 商品标题测试 商品标题
商品描述 body String(256) 商品描述测试 商品描述
客户端IP clientIp String(32) 210.73.10.148 客户端IPV4地址
渠道订单号 channelOrderNo String 20160427210604000490 对应渠道的订单号
渠道错误码 errCode String 1002 渠道下单返回错误码
渠道错误描述 errMsg String 业务异常错误 渠道下单返回错误描述
扩展参数 extParam String(512) 134586944573118714 商户扩展参数,回调时会原样返回
创建时间 createdAt long 1622016572190 订单创建时间,13位时间戳
成功时间 successTime long 162201657210 订单支付成功时间,13位时间戳
商户手续费 fee Long 整数
手续费币种 feeCurrency String USD
结算金额 settleAmount Long 整数
结算币种 settleCurrency String USD
汇率 currencyPair String USD/THB-37.050980

返回示例数据

  {
      "code":0,
      "data":{
          "amount":100,
          "payOrderId":"P1713852926008610817",
          "extParam":"",
          "mchOrderNo":"mho1697449351770",
          "subject":"商品标题",
          "wayCode":"BDBR_PIX_OUT",
          "body":"商品描述",
          "checkDate":"20231016",
          "createdAt":1697449354065,
          "appId":"634fd9d8ec2e49660f569e44",
          "clientIp":"192.166.1.132",
          "signType":"RSA",
          "currency":"BRL",
          "state":1,
          "mchNo":"M1666177496"
      },
      "msg":"SUCCESS",
      "sign":"M3vKlXJ0fYIVyoccfJ2KvidDXRBG50fakan/BRepd4CTOL1DW1VRSsAuTydQU8KQdlOdYMTQbY/nXiB2l57gY+GfxK+L4BvMPL+4h+8z/suQUb5M/Vnc3WBAjQthbFex4iAzJUbCZ7OWnGlxJEmH4B1qVzTE6QWnd0zwhpeFFA8B+Ig59wZBU5GkymwipQm7nACXJEXOK8H1sG5nbCrXBxilycqZ5ppU+Sy49wDK/Uz2rVhYflIsFhpXj+Zc1zw0j3XCLkDQNNqbYl2wx3J+0bdJkppRAlClYX2sftbzNs6mWHzHOBWhNp3sMZ/d3tv8SGANWorINlGc6DC6uPubNA=="
  }

四、其他服务介绍

余额查询

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /account/balance

2.请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式
服务商编号 isvNo String(20) 服务商编号
商户号 mchNo 64 M BydaPay商户号,服务商开通合并提现时可以不传此参数

请求示例


  {
      "isvNo":"V1712908690",
      "appId":"6621ec6622526b33b8c0e4b0",
      "sign":"JW8DQ9/9M8g8Re+Xn1wESZDTCcZB3XhqyySCminybg9jTOLD2Yr1XtRT+SbPyY2ws9zcZ8OG43uDJLwdjONpppIzDJ/brmH/i+cr13bN12OS0juJ4vnvldW1v/St965sdggXhwWy6gMAK9EnVrfLy5zbKU++f3yol73iwuxOYG4m5vMfsxFQNVMM3O9+P3ulZ2mJBfUY2MCI3QqtlVFcMwMcSzjcpDnOmGhbrkcLc0bSbV9ew4fTC0r3DeRig8o+FOrS9fiyQ00UoV5A6FlrikPskPcBSui8mx7da3djQwAUzQCxpOvEmT35yCOl7uoTvYsHparlsaXwounTdS9uJQ==",
      "signType":"RSA",
      "reqTime":"1697449664",
      "version":"1.0"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
钱包 walltes json array
可用余额 balance Long 整数
待结算余额 waitSettleBalance Long 整数
循环保证金余额 marginAmount Long 整数
币种 currency String
冻结余额 freezeBalance Long 整数
可垫资余额 preBalance Long 整数
20230112新增

返回示例数据

  {
      "code":0,
      "data":{
          "walltes":[
              {
                  "balance":99220,
                  "waitSettleBalance":44489,
                  "marginAmount":0,
                  "currency":"USD",
                  "freezeBalance":11357293
              },
              {
                  "balance":0,
                  "waitSettleBalance":0,
                  "marginAmount":0,
                  "currency":"BRL",
                  "freezeBalance":6042189
              }
          ]
      },
      "msg":"SUCCESS",
      "sign":"Tx55tXBIP4T19fNwt/jTfPLPPRnEJ3YY1Qv/XYjIgrOitJWpvNGyGT1ZiNU5e1FF05fnrSaGkXJu+YB7LCrJKS7KHdKM05ZcgrMxDqSK2bODLp3fNkNTvArmTiD/1V39Q/ayFJgTb3uccv5CsXjnUax8lyxJGWzhrGZO65pAnhRlCbdtgmhCpJC1mFAVDBGOh/Jjo/dvf1z0Gx5K0Gv1qCncEnGw3wlQ+htotXDJ4HY6zV5mOAkPTbjGLG9LJrq5pR3XQcfyXHYwxM1KHsd2eYao4gJI1qkxp/fuyxRK7vrI3GcKKvhe3ur+jcJ4xnl/EpKnOLnb7A/ikwQ/L5iz2w=="
  }

提现申请

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /account/cashout

2.请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
服务商编号 isvNo String(20) 服务商编号
商户号 mchNo String BydaPay商户号,服务商开通合并提现时可以不传此参数
币种 currency String
商户订单号 mchOrderNo String(64)
提现金额 amount Long 整数
订单类型 orderType String 1普通提现(可用余额提现结算)
2垫资提现(可垫资余额提现结算)
默认是普通提现
20230112新增
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式

请求示例

  {
      "isvNo":"V1712908690",
      "orderType":"1",
      "amount":100,
      "mchOrderNo":"mho1697449892218",
      "appId":"6621ec6622526b33b8c0e4b0",
      "sign":"C4NlKzOu+CnNQ9lkPHjlbwNnF8j6W2vWvswlczMxwDhFzTjyr3/396Zv5jcHG1LhU44PWqN0EfruBv8UEy/M9yHCXkPU6o8oJ4vbcaVnTM8aC071ej8PSc53r9jAGvLF9qAco2ixXJ6hHCjczYIBUZvokr0yNax+tXusCZp7h7x2LfSSW7cWaoZQxcK50De6PFDUwjXSHmw7EyKBO1/+STJAHwG5j4ICxh7C9YhBbKOp8CkmevNQOi3+60gEgb53CN6ytOfeveqbA4XUUlIfxMjoEvN9/cPxbSaSSbrnox1b4bsIVk1f/FwFltvO+deti8P0J/EpM122AA6b+Z163Q==",
      "signType":"RSA",
      "currency":"BRL",
      "reqTime":"1697449892",
      "version":"1.0"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
状态 state String 1待审核
2审核通过
3审核拒绝
4出款中
5完成

返回示例数据

  {
      "code":0,
      "data":{
          "state":1
      },
      "msg":"SUCCESS",
      "sign":"Y6ycyTy5DRGFZiyfu33qXrvRZ1NlClrOLPk/k48DZG0NGo6aXZUBQdJHa6XJECSezpRul6LErvliNg1MAG2j7BEZ/1VeNPNOqWSeT74fvgR/2n26qZynrjdjKdZ07tezucMG3/RNVyGEQ1SEuoXURNU3k/+oVSBqnTwMNyWcU4+gLIRDaXQXWpME1Ll0Wae/cr2XzW9Oio2u21PJfl5qOikUfV/jI9YeO6oOf62qFZ8WhsVi+5LG2P9xJXKO6f2WNel+tUjjxVdmGOg3HvhzoBZJt5xfVQ/JGb9Bzduwu1Y0xGcXzSdifm/ngih9mcOlMWVIX0C/ICgDNnwu0rdyEQ=="
  }

提现申请订单查询

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /account/cashoutQuery

2.请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
商户号 mchNo String
商户订单号 mchOrderNo String(64)
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式
服务商编号 isvNo String(20) 服务商编号

请求示例

  {
      "isvNo":"V1712908690",
      "mchOrderNo":"mho1665068558603",
      "appId":"6621ec6622526b33b8c0e4b0",
      "sign":"Rd10I7CY1meACOUyQyt6a0qo6RvvIZchTTm3bhnZ0v+pEp/xCnGzHbfbrjJUTlyWfwTS5K2XV0s+VyzOzYTkFFAyrwtWwGjUtgfVbS1LmUKGTnw0/R3drDk+ec1uthPnPpyz553v7Jftc6hCZsNPCk7BeXX+2Re6epwg1l0IrFkhubX2p/3r9368QKA6VPuLuIzfJeJLe/4PJDlxwkiF8k5osIedzcfsvnBWRrgQ8Xxq9uPcQEXY4vkgOgEOfnW90h6LeCttAVUR6rChmeXxWb0UIRf9JJiAyvFO8KSmEMMzCjMU6MVexa5EBiylm5HzTuG8dzIgKy8a2Bt/ipRVyw==",
      "signType":"RSA",
      "reqTime":"1697450024",
      "version":"1.0"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
状态 state String 1待审核
2审核通过
3审核拒绝
4出款中
5完成
提现手续费 fee 只有状态为2,4,5时才会返回
提现手续费币种 feeCurrency 只有状态为2,4,5时才会返回

返回示例数据

  {
      "code":0,
      "data":{
          "state":1
      },
      "msg":"SUCCESS",
      "sign":"Y6ycyTy5DRGFZiyfu33qXrvRZ1NlClrOLPk/k48DZG0NGo6aXZUBQdJHa6XJECSezpRul6LErvliNg1MAG2j7BEZ/1VeNPNOqWSeT74fvgR/2n26qZynrjdjKdZ07tezucMG3/RNVyGEQ1SEuoXURNU3k/+oVSBqnTwMNyWcU4+gLIRDaXQXWpME1Ll0Wae/cr2XzW9Oio2u21PJfl5qOikUfV/jI9YeO6oOf62qFZ8WhsVi+5LG2P9xJXKO6f2WNel+tUjjxVdmGOg3HvhzoBZJt5xfVQ/JGb9Bzduwu1Y0xGcXzSdifm/ngih9mcOlMWVIX0C/ICgDNnwu0rdyEQ=="
  }

信用卡订阅绑卡

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /pay/unifiedInfo/cardAdd

2.请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
商户号 mchNo String
服务商编号 isvNo String(20) 服务商编号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
请求ID reqId String(64) 请求ID,无实际业务作用,用于日志定位使用
国家 country String(64) 固定值,巴西和墨西哥: BRA和MEX
名字 name String 墨西哥国家必填,名字,全称
邮箱 email String 墨西哥国家必填,邮箱
持卡人全称 cardHolderName String(64) 持卡人全称
卡号 cardNumber String(64) 16位纯数字字符串,不能有横杠空格等分隔符
信用卡安全码 cvc String(64) 信用卡安全码
信用卡过期月份 expirationMonth String(2) 信用卡过期月份, 2位数。
信用卡过期年份 expirationYear String(4) 信用卡过期年份,4位数
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式

请求示例

  {
      "expirationYear":"2028",
      "country":"BRA",
      "cardHolderName":"PengYuYan",
      "sign":"lGDdo3KQVhEwVXu1VAHxjWytuJg1mywtdZOrESNlbzWZYNFYAYnolk/AHTMY548t2mUBuLD/ycicQjF1m0Rv8GxVhKwllZFD91Se39D0evOLy4BMgX69Cpe8fldwl3Rw7TTGwl2slAyj3VybvZ1joDOytgeVfAVJixLzeVuk8/eQRmYoKBLH2BcyPGTs53pWXOQKkkkyd8RA40RfM+uUWzb7nY4tdiKOE093U2w6S5ZUV9jGqMKQ6eY/k5z/eV8f0r9TjMAjgwLj1m+/epV0SVkuPh0u+MrqWoQfCEo7vMvfhis+umvG95ESM3tp3/5kQF2n/SwIpjeN6Xw7vC+y+g==",
      "expirationMonth":"02",
      "reqTime":"1697450840",
      "version":"1.0",
      "reqId":"700d4662-c708-4f15-a621-8a7a6fa6b2f9",
      "isvNo":"V1712908690",
      "cvc":"123",
      "appId":"6621ec6622526b33b8c0e4b0",
      "name":"pengpeng",
      "signType":"RSA",
      "mchNo":"M1713499234",
      "cardNumber":"4111111134511112",
      "email":"aa@qq.com"
  } 

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
卡token cardToken String

返回示例数据

  {
      "code":"0",
      "data":{

      },
      "msg":"SUCCESS",
      "sign":"cmwt9VKa4uAG12Bu2ECSjdOIcmnuO8M5iaM+2Jd94z1BjuDILFoniyx8GZJowJg7P/sDmt/SBMwYLjTggBP60bQP8+MG4fqi6ArplSzhAT7vxtTDTxrg0+XulLH8eRzGGTnB/aKUG2LKvBClNGE9daKIk6s7v2MqZqjkh+1yDsFPssinjQp5UMjYyKPgBtP+led7/56+/VRB+v46AegVvLTwqWE89ModFAzvN19L4ro3toBXNgmJ2WLpdMSKFr9i1kGVfpB9hloNvDCrRZ1+fSXXudocOU4xtJJPs0rHum/UADYDvoZuy0vZoWHJHs8j871yeT2Yl5jlLFDqcfKyRQ=="
  }

信用卡分期创建方案

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /pay/unifiedInfo/createCardProposals

2.请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
商户号 mchNo String
服务商编号 isvNo String(20) 服务商编号
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
请求ID reqId String(64) 请求ID,无实际业务作用,用于日志定位使用
币种 currency String(3) 固定值,巴西和墨西哥: BRL和MXN
金额 amount Long 整数
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式

请求示例

  {
    "currency":"BRL",
    "amount":"2345",
    "appId":"63045ca7ec2e9653affc2080",
    "reqId":"2345345gerg",
    "sign":"B5HUcL/wzbXY0S5uFDAmX7s3PvedFsjsfMYPlIMYRIVAoQ9ubQuLuWjHXo+Jpl9WMC8LoJ8KnwrFhaP16clwfd9BPa2ckvDVs24X/wpBL9Gud9sTrXXDZ8SHW2K5QPwgqhUcr/Q7ft7sWhaoPQxjBNG9ohlj/wsQmzuslQc/zevRjBcWrQiABPLrPRIsDPyeGlIgeHalT7uiXb4FR3FpGvDEtT0yVEjC0ofyk9x5X7T123IGxrUTC+PMBZSTM+PhEkTG4t3qV7t6s/jHs9RYUWufZHRnPajMNm6P9dFuxpi7LqFDkrgQlTEzdQx8Via0uhB4DtqTMaHT4J2tEQZSpw==",
    "signType":"RSA",
    "expirationMonth":"02",
    "reqTime":"1681109671",
    "mchNo":"M1712907290",
    "version":"1.0",
    "cardNumber":"4111111111111111"
  }

3.响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
方案过期时间 expirationTime String 北京时间,yyyyMMddHHmmss
方案ID proposalId String 信用卡支付时需要使用此参数
方案详情 proposalDetails json array
分期付款总金额 totalAmount Long 整数
分期付款金额 installmentAmount Long 整数
分期期数 installments Integer 整数
分期利率 rate BigDecimal 0.1=10%

返回示例数据

  {
      "code": 0,
      "data": {
          "proposalDetails": [
            {
              "totalAmount":4180,
              "installmentAmount":1393,
              "installments":3,
              "rate":0.02
            },
            {
              "totalAmount":4303,
              "installmentAmount":717,
              "installments":6,
              "rate":0.05
            },
            {
              "totalAmount":4508,
              "installmentAmount":376,
              "installments":12,
              "rate":0.1
            }
          ],
        "expirationTime":"20230410160352",
        "proposalId":"1004d278-3458-4197-bd55-a438cf916b40"
      },
      "msg": "SUCCESS",
      "sign": "Y6ycyTy5DRGFZiyfu33qXrvRZ1NlClrOLPk/k48DZG0NGo6aXZUBQdJHa6XJECSezpRul6LErvliNg1MAG2j7BEZ/1VeNPNOqWSeT74fvgR/2n26qZynrjdjKdZ07tezucMG3/RNVyGEQ1SEuoXURNU3k/+oVSBqnTwMNyWcU4+gLIRDaXQXWpME1Ll0Wae/cr2XzW9Oio2u21PJfl5qOikUfV/jI9YeO6oOf62qFZ8WhsVi+5LG2P9xJXKO6f2WNel+tUjjxVdmGOg3HvhzoBZJt5xfVQ/JGb9Bzduwu1Y0xGcXzSdifm/ngih9mcOlMWVIX0C/ICgDNnwu0rdyEQ=="
  }

对账单文件下载

1.接口说明

标题 描述
请求地址 请参见 联调环境
接口路径 /pay/unifiedInfo/transactionItemsDownload

2.请求参数

字段名 变量名 必填 类型 示例值 描述
请求时间 reqTime long 1622016572190 请求接口时间,13位时间戳
接口版本 version String(3) 1.0 接口版本号,固定:1.0
商户号 mchNo String M1713499234 商户号和服务商号二选一
服务商号 isvNo String V1712908690 商户号和服务商号二选一
文件类型 fileType String 1 1-商户日对账单,6-信用卡订单明细,7-信用卡争议订单明细,8-信用卡结算明细
应用ID appId String(24) 60cc09bce4b0f1c0b83761c9 应用ID
请求ID reqId String(64) 请求ID,要求唯一不可重复,无实际业务作用,用于日志定位使用
签名 sign String(32) CCD9083A
签名类型 signType String(32) RSA 目前只支持RSA方式
下载日期 checkDate String 20231024 yyyyMMdd

请求示例


{
    "isvNo":"V1712908690",
    "appId":"6621ec6622526b33b8c0e4b0",
    "signType":"RSA",
    "reqTime":"1698805067",
    "checkDate":"20231030",
    "mchNo":"M1665633523",
    "version":"1.0",
    "fileType":"7",
    "reqId":"8f1624da-9028-4afe-aa8b-0510f3a38f2f"
}

4. 响应参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign String(32) CCD9083A 对data内数据签名,如data为空则不返回
返回数据 data String(512) {} 返回下单数据,json格式数据

对账单文件模板(fileType=1)
注:对账文件格式后缀为 .CSV

Title Line
标题行
Merchant order no
商户订单号
Order no
订单号
Original order no
退款订单原订单号
Local amount
记账金额
Local currency
记账币种
Transaction amount
交易金额
Transaction currency
交易币种
Merchant fee
商户手续费
Merchant service fee
商户服务手续费
Fee currency
手续费币种
Settlement amount
结算金额
Receipt/Payment/Refund Identification
收款/汇款/退款
Payment method
付款方式
Exchange rate
结算汇率
Merchant ID
商户号
Merchant name
商户名称
Creation time
订单创建时间
示例 mho1697634949202 P1714631377678307330 P1714631377678302222 17.59 USD 90 BRL 0.94 0.01 USD 16.65 PAY BR_PIX USD/BRL-7.111111 M1712907290 测试特约商户 2023/10/24 17:07:16

data数据格式

字段名 变量名 必填 类型 示例值 描述
下载地址链接 downloadUrl String(30) https://BydaPaypri/20231018.csv 跳转链接

返回示例数据


{  
"code":"0",  
"data":{  
"downloadUrl":"https://BydaPaypri/checkFile/20231018.csv"  
},  
"msg":"SUCCESS",  
"sign":"M5YUUtyrOtAA0AHXk3G6maAXlFvi6GJNR635t3/iZaSgV1rqfpclbVam5kshGJRnEkrLOiyplnLvmrd2lht2HAhzRiVqpmgTorqFUgXbUacOYJiS9WDLT1ZQutwD2GQEr3yJ1vrPjCxf7U+5K22UdmT8KJMzdpzooJ6i5JA9nKXyEmshuybCXYXnAkYUDt22qfXO4BchvOycYHHifXnBCx1xvvsc//dl8hZWcs28zljj6EmVhNYr8ZFnc4H0DVEnWy6MWwIlONbP6qaylHsOsJGmTxyQp4Q1ZMNbUZ27m8rrj3r3HX2/BvaKdn8Y3f8ady0b27cwVrWj/YNBiX/Jpw=="  
}