账户余额查询
# 代码示例
- 代码示例仅供参考,具体参数说明请参考请求参数说明
import com.google.gson.JsonObject;
public class BalanceQuery {
//MCH_ID: 商户ID
//请登录商户后台,点击 个人中心 > 个人信息 在基本信息中获取商户ID
private static final String MCH_ID = "S820211021094748000001";
private static final String PLAT_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2JoMfFqLsSJjAiCahEnlP3aRj8yCT+WHzR+VvPBTw9S1i7iYWb+MY09CG/HYuHF4+IxshXDJygmndxKf/esuwPybS8mAd//yubHpmZsmBqg1FffT8VH1APa6ZRWASUp4U01ZrbCCp35QA8FuWrJGMJxGx4xk7KUtV2yujxC8noQIDAQAB"; // 平台公钥
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 BALANCE_QUERY_URL = "https://tl-openapi.toppay.asia/gateway/interface/getBalance";
public static void main(String[] args) throws Exception {
query();
}
private static void query() throws Exception {
Map<String, String> requestParams = new TreeMap<>();
requestParams.put("merchantCode", MCH_ID);
requestParams.put("currency", "THB"); // 币种(THB)
List<String> paramNameList = new ArrayList<>();
for (String key : maps.keySet()) {
paramNameList.add(key);
}
Collections.sort(paramNameList);
StringBuilder stringBuilder = new StringBuilder();
for (String key : paramNameList) {
stringBuilder.append(requestParams.get(key)); // 拼接参数
}
String keyStr = stringBuilder.toString(); // 得到待加密的字符串
System.out.println("keyStr:" + keyStr);
String signedStr = TopPayRequestUtil.privateEncrypt(keyStr, TopPayRequestUtil.getPrivateKey(MCH_PRIVATE_KEY)); // 私钥加密
requestParams.put("sign", signedStr);
String postJson = new Gson().toJson(requestParams);
System.out.println("Post Json Params:" + postJson);
String responseJson = TopPayRequestUtil.doPost(orderQueryUrl, postJson); // 发送 post json请求
System.out.println("Response Msg:" + responseJson);
}
}
# 请求地址
- 请求方式 : POST
- 请求地址 : https://tl-openapi.toppay.asia/gateway/interface/getBalance
# 请求参数
参数 | 必填 | 类型 | 示例 |
---|---|---|---|
merchantCode | Y | 商户ID | S820211021094748000001 |
currency | N | 币种 | THB(不传展示所有货币单位的余额) |
sign | Y | RSA签名 | ja6R8eukQ... |
# 请求报文示例
{
"merchantCode": "S8202110212321300001",
"currency": "THB",
"sign": "X/o+IQUzLJqYe9Feid9Uww72mJGOvhJSJEIfo1EUChrZyVZnzGHtd61QhOqRmXCtAwk7V7k="
}
# 响应参数
参数 | 类型 | 必填 | 描述 | 示例 |
---|---|---|---|---|
success | BOOLEAN | Y | 接口响应 | true/false |
code | int | Y | 接口响应码 | 1000代表成功,其他的都为失败 |
message | String | Y | 接口响应信息 | 返回具体响应信息 |
data | Json | Y | 接口响应参数 | 以下参数都在data中返回,如失败则为null |
mchId | String | Y | 商户ID | S8202110212321300001 |
mchName | String | Y | 商户名称 | test |
mchNo | String | Y | 商户编号 | TP123 |
currency | String | Y | 币种 | THB |
balance | String | Y | 可用余额 | 1000.00 |
freeze | String | Y | 冻结余额 | 10.00 |
waitingSettleAmount | String | Y | 待结算金额 | 200.00 |
freezeWaitingSettleAmount | String | Y | 冻结待结算金额 | 100.00 |
totalAmount | String | Y | 全部金额(可用余额+冻结余额+待结算金额+冻结待结算金额) | 20000.00 |
# 响应报文示例
{
"success": true,
"code": 1000,
"message": "SUCCESS",
"data": [
{
"mchId": "S82022091232130000001",
"mchName": "test",
"mchNo": "test",
"country": "THAILAND",
"currency": "THB",
"balance": "1000000.01",
"freeze": "10.00",
"waitingSettleAmount": "10.00",
"freezeWaitingSettleAmount": "20.00",
"totalAmount": "1000040.01"
}
]
}