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; }
|
}
|