yeg
2026-09-15 dcc23e37a74502d027b7e1efeca57378c94273b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.nio.file.*;
import java.time.*;
import java.time.format.*;
import java.util.*;
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 QueryHuifu {
  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(!Set.of("v2.merchant.basicdata.query","v2.user.apply.query","v2.merchant.busi.config.query","v2.merchant.busi.realname.query").contains(args[0])) throw new IllegalArgumentException("Read only query required");
    Map<String,Object> request=JSON.parseObject(args[1],Map.class);
    Map<String,Object> response=BasePayClient.request(request,args[0],false);
    Map data=response.get("data") instanceof Map ? (Map)response.get("data") : JSON.parseObject(""+response.get("data"),Map.class);
    if(data==null) { System.out.println("Empty data; code="+response.get("resp_code")+"; message="+response.get("resp_desc")); return; }
    for(String key: args[2].split(",")) if(data.containsKey(key)) System.out.println(key+"="+JSON.toJSONString(data.get(key)));
  }
  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; }
}