import java.nio.file.Files;
|
import java.nio.file.Path;
|
import java.util.Map;
|
import com.alibaba.fastjson.JSON;
|
import com.huifu.bspay.sdk.opps.client.BasePayClient;
|
import com.huifu.bspay.sdk.opps.core.BasePay;
|
import com.huifu.bspay.sdk.opps.core.config.MerConfig;
|
import org.yaml.snakeyaml.Yaml;
|
|
/** 只读查询探针:把通道回执原样打出来(库里的回执会被关单覆盖,原文只能这样拿)。 */
|
public class ChannelQuery {
|
public static void main(String[] args) throws Exception {
|
Map root = new Yaml().load(Files.readString(Path.of("talent-card-server/src/main/resources/application.yml")));
|
Map config = find(root);
|
BasePay.debug = false;
|
BasePay.prodMode = BasePay.MODE_PROD;
|
MerConfig c = new MerConfig();
|
c.setSysId("" + config.get("system-id"));
|
c.setProductId("" + config.get("product-id"));
|
c.setRsaPrivateKey("" + config.get("private-key"));
|
c.setRsaPublicKey("" + config.get("platform-public-key"));
|
BasePay.initWithMerConfig(c);
|
if (!java.util.Set.of("v2.merchant.basicdata.query", "v2.merchant.busi.config.query",
|
"v2.merchant.busi.realname.query", "v2.merchant.basicdata.status.query").contains(args[0]))
|
throw new IllegalArgumentException("Read only query required");
|
Map<String, Object> request = JSON.parseObject(args[1], Map.class);
|
System.out.println(JSON.toJSONString(BasePayClient.request(request, args[0], false)));
|
}
|
|
static Map find(Map root) {
|
if (root.containsKey("system-id") && root.containsKey("private-key")) return root;
|
for (Object v : root.values()) if (v instanceof Map m) { Map r = find(m); if (r != null) return r; }
|
return null;
|
}
|
}
|