申请流程银行卡验证

This commit is contained in:
liuz 2018-06-20 20:27:53 +08:00
parent af53f459de
commit dbe8f52a76

View File

@ -18,7 +18,9 @@ import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.gnete.security.crypt.CryptException;
import com.google.gson.Gson;
import com.tenwa.collectaudit.cache.CollectAuditInfoCache;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.zhongan.scorpoin.biz.common.CommonRequest;
import com.zhongan.scorpoin.biz.common.CommonResponse;
@ -150,69 +152,39 @@ public String saveMobile(JBOTransaction tx) throws JBOException{
}
//校验银行卡四要素
public String verifyFourelementBank(JBOTransaction tx) throws JBOException{
//以下参数为环境参数接口版本号appKey开发者rsa私钥接口名
// String env = "iTest"; //测试
String env = "prd"; //生产
String version = "1.0.0";
//String appkey = "230a15d4bc245d1fba6e5cce1f2b21ec"; //测试
String appkey = "b373daf93000876cd5f3728bcc36f697"; //生产
//测试私钥
// String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDqll0OE25x8gr4E5sDOGWIItjssI/tXKrZwjKD5ZXlzbLgcXSf0u3MFjz9UKdkQlr4GpUtPvdrbet/bPxZ5PBLe91ZYohAOv3vSZLcElhr2JI0mEX+Xyy2RlTRmk27WZZLH02fvhJrh6a4PFQYagHfqVTBJQFo2uSUP2/TZeEUBCz+jPp+YVwGl/jDBNGP+UNRDOkYLpDFnmJGbVNl6kgqf7IzY9yaF8RGtlzWz7/NOfn/fRc+PQuhrWk19sxbPJsgONQtx8G2Ecd/RdVV3kxViEf8ETn6ypuB4dthgHhS+SWn3KJftY1g3BbgoiMrExn/HLtyHU2suyExB/FqoRmDAgMBAAECggEBALOcQM9ALXXsvl1GlY8XpRVgqPpADVLNerqTp525MNXscqLJ+2NLWmrCNBw3npJzA7emksU7yrBkTsUXqvchBKKmyclgWbXj9P07Ncht+2lHPloqpJyoPlGo89Qv8ogZhasq4oIGQ5A1In85IaI3uAuJWK0xKi0gO5cOIw6WmIh7WmSzc+IY++DGfgBhpQ1zgaFeFg10r9Ha2atYmhw+3p1xeJLnDqxpDT4cRms9L+WOh2e7UCAbRUAK6xugFiZf1bCDM5PvxGQJi0LmaBUKkF2kbTogCJtSolar71xhgBhdjx7zxBwfpr0OOTyMsDks+j98ZwL/80cGJ42Iu5IRTlECgYEA/8SW1IfSTVqj/UHUN+/y3N6ebf+VsByWpNnkEWMznRGAsGPy8cLwQdz2vysaEw7/mMm6vGjAuAxdKKzHSslncHVdQEBJhdXoBbHEIiPWxFwj3bfjGy6zmiMGiYU9d7qm7CUObjDmBlTjIIWCsLN3qbCy39FzrZsrTlj/0+stbc0CgYEA6szaumC73J0a1YWpLgguZz0JhLhxtZkWs3GbIzDw/5Uc+aU9lbbCUkQmgc6WfI66TvmF8yWrUVTtbHMhHCHwc3LN7MPqnZuAvzgOG5TzZGH50rVVHXGEBezHOoNFZdOLipOYoQ5/MIlR2vHnJkbt9XEFY9bpHw7+TlnKVief1I8CgYBWXJoVX1s6dV2kGUNANAxMWfsi50cy9SREu7IP0PBPm+ZZKRaSXaFki+jhOfuO7eSOQaeFENXqD3qxTk3oycLcrTR0ioCI6WZz7cdtQ660FOyjZAESX52TcTo22z+bGvJcEFMkD+zLvIQIqiwr4B2KtbhgbMfjmd5wkQqpEuL/DQKBgGjjMiJn7APVOpN/rd+eT/xWS9Y5/rG8vWNTsJW72yyRE+yBYE1s4smVIA6Elrz1lUyKMsg3X5xpb9YuZ/AFSUCJXGwT6M6XFKBXDhZMJ54EFnGGB4urlep/p1AALBQcuA0jed8YdsDb1vETdsqmjM5DusCq1GDHddrSSYzLDp8JAoGBAMtAONE3gvFpgRr/3tudOHZt1lywfHsePSXOnMFkSviJDTMXNWR0GQ7k8R1PHVdZRr8xIeONH5WKU9Vd7jmCKIvi2LdjdhePoGVwq875cLLALH3CkgWr0kcHB02M3xLK2oowmtrRCX18Jzo3Q6oKycq1NcljaPLQsObp9/ws2bkX";
//生产私钥
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqObLkOTu/ENsmxNdLfIBXisAoA/WZPNGUT2b6Y+wn5ociJmg1nIt+a7jKE2vsZgpxjYzUzBxWd9jHTNkxZzQjYLZTYjAi6RoG55OsVfTIr+9DcVKRg6aZrgtNxtPXGwWrft6tTyN5ddwpzv8zj6+/F/MUoisPAI2bb6tGr3GyCPEUN4tZSK2JYi+BcjeLrEX7BbkvWaBBu9G+PUu2Athm6gkdRWMCbNVPOPSqNB8fnYzESo5/0RJd2ZRM8ssweqI5AfkAEg5PB8vAK7y3Thcz1XDK8DOzsk8XSSuP6YQE44VsalNCzplMPR9Cm11aN4T4vLsBL0Qrzp6da/SXT9FDAgMBAAECggEAWaF//IPWXci2XDeRVYH84huBCpDrJQDNKdaVVop+spPD28t1W6VOHgcCigSn8xXXserimLnQwgbg8jAYvNamsWofFtDAn+E1fyU4sKmh9noM9eoZm91CP/FQqmdi7ASie6aWAZOGDlJs1ubToYaq92fY6qhpG8EizxGBkfqXVzJZwK5QBs2WjsVh/gad/JdAW2SWG17WNErdoGX0dDkJook0yMM29lpXWJqg6JaJEwSM18rVCVPP+DEhxarRiAFa2nXACpxoaiO5Hk8S8LgUv9ct1nlYWkP4NRgTyhcaUUCyjPdmGwO/NBpx8ChoRdtXOeMLw6RNzD3JgdZ+QhYtoQKBgQDfvA1xJKVY+Tr/O98bBEAS8N2IM9K+gBaLUkjrGn69pjTlGTmPSpaXzINVu/aR5KOvf1LfPhCriBZzMw03j4BYl+BHaQIPjeJw4PpyycssI5CrUHY7CFHhguDSims/9w2scO+j18gq9LMxiL/l7R4KdG+jcrMrD9SMlPSQnDre1wKBgQDCxiqhmd/qRGUkjgjjeKK70YgOzE7f8+foxm9AkqHiOfcclSdHHBi6THrawoEyWzC0FDcQDZuJYDbYK7JslhDZOYEqv1tYaUeD/D4CgNn4vnUJ++v1f0c+9BrkLYCbaZhz9XDes3JAOq7jO08LbLd01wQj8MP1YJ3UbprwiyWvdQKBgQC3rt9mTYzGgE+0bkYcGyAzrLZj9RAHQIfBuDuPcYAuWX9Bu7Tq9HSwicIlqByl6I2OLr0t9PmgqiisSXSHcfQQSBhk6Ew90uHehIZ5qTx5r3U9gOCgVJNMzrOfhu7IZB9AvLOx0x1OTvmzKC9MKKEqOi/RhACe0O9Sv5QOCYW3nwKBgF3XzMJ/uPrOaUzrgizW+tEzazJ2DaqpgZsNwJyECatN8lm7I2mHiAJ6xtaP0F/Kv/SDqOP7Km1OBh6xLw5SX1vJ8Qn/mKtITkSxS8849cx7NzjQQCfQYytZwXse0VAP2HxGTVN/chSwMYMaGEOQ5fNNhZkrb77SBjlL8SrkYAvhAoGAcu0+1c1vorUwDbvTmka7hxWatI/2NwdnLKeYwcWZLwP+XCaSnD968OmuaVBjN5Sf7fE/+hc9F7wiIG2pTFDX2j/3kItyspb+f0avDoTkxbMJW7t5hm0sKtiQWyA8nSA8U2tQjlrj2VxSUv/34neExc5J8xOysHnGT7yXlLWUkXc=";
String serviceName = "account.auth.cardOTP";
ZhongAnApiClient client = new ZhongAnApiClient(env, appkey, privateKey, version);
// SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
// String curtime=df.format(System.currentTimeMillis());
String curtime=String.valueOf(System.currentTimeMillis());
CommonRequest request;
try {
request = new CommonRequest(serviceName);
JSONObject params = new JSONObject();
BizObjectManager bm = JBOFactory.getFactory().getManager(CUSTOMER_ACCOUNT_TEMP.CLASS_NAME);
BizObject bo = bm.createQuery("select cpt.fullname,O.mobile,O.acc_number,O.account,cpt.CERTID,cpt.CERTTYPE,O.customerid,cpt.flowunid from O,jbo.app.tenwa.customer.CUSTOMER_PERSON_TEMP cpt "
+ "where O.customerid = cpt.customerid and O.acc_type= 'Debit' and cpt.flowunid=:flowunid")
.setParameter("flowunid", this.getFlowUnid()).getSingleResult(false);
if (bo != null) {
//代收付签约银行卡验证交易测试URL
/*CollectAuditInfoCache cap = new CollectAuditInfoCache();*/
//传入业务参数
params.put("orderNo", curtime); //订单号
params.put("authType", "FOUR_AUTH"); //鉴权类型(三要素/四要素)
params.put("cardCategory", "JJ_CARD"); //卡类型
params.put("cardNo", bo.getAttribute("acc_number").toString()); //卡号
params.put("openName",bo.getAttribute("account").toString()); //开户名
params.put("certiType", "SHENFENZHENG"); //开户证件类型SHENFENZHENG 身份证
params.put("certiNo", bo.getAttribute("CERTID").toString()); //证件号
params.put("preStayPhone", bo.getAttribute("mobile").toString()); //手机号
params.put("remark", ""); //备注
request.setParams(params);
CommonResponse response = (CommonResponse) client.call(request);
System.out.println(response);
Map<String, String> Msg = new HashMap<String, String>();
String res=response.getBizContent();
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
Msg = gson.fromJson(res, map.getClass());//关键
bm.createQuery("update O set VERIFY=:verify,VERIFY_STATUS=:verify_status where flowunid=:flowunid and acc_type='Debit'")
.setParameter("verify", Msg.get("resultMsg"))
.setParameter("verify_status", "true".equals(Msg.get("success")) ? "Y" : "N")
.setParameter("flowunid", this.getFlowUnid()).executeUpdate();
BizObjectManager bm = JBOFactory.getFactory().getManager(CUSTOMER_ACCOUNT_TEMP.CLASS_NAME);
String customerid = this.getCustIdByFlowunid(tx).split(",")[0].toString();
BizObject bo = bm.createQuery("select cpt.fullname,O.mobile,O.acc_number,O.account,cpt.CERTID,cpt.CERTTYPE,O.customerid from O,jbo.app.tenwa.customer.CUSTOMER_PERSON_TEMP cpt "
+ "where O.customerid = cpt.customerid and cpt.customerid=:customerid")
.setParameter("customerid",customerid).getSingleResult(false);
if (bo != null) {
//代收付签约银行卡验证交易测试URL
CollectAuditInfoCache cap = new CollectAuditInfoCache();
Map<String, String> map = new HashMap<String, String>();
map.put("ACCOUNT_NO", bo.getAttribute("acc_number").toString());//卡号
map.put("ACCOUNT_NAME", bo.getAttribute("account").toString());//户名
map.put("ID_TYPE", "0");//开户时的证件类型,0->身份证,默认身份证
if (bo.getAttribute("CERTTYPE").toString().equals("Ind02")) {
map.put("ID_TYPE", "2");// 2->护照
}
//map.put("ID_TYPE", "0");//开户时的证件类型,0->身份证
map.put("ID", bo.getAttribute("CERTID").toString());//开户时的证件号码
map.put("TEL", bo.getAttribute("mobile").toString());//开户时预留的11位手机号
//四要素
Map<String, String> fourMsg = new HashMap<String, String>();
try {
fourMsg = cap.vitfyCollectManage(map);
bm.createQuery("update O set VERIFY=:verify,VERIFY_STATUS=:verify_status where customerid=:customerid")
.setParameter("verify", fourMsg.get("ERR_MSG"))
.setParameter("verify_status", "0000".equals(fourMsg.get("RET_CODE")) ? "Y" : "N")
.setParameter("customerid", customerid).executeUpdate();
} catch (CryptException e) {
e.printStackTrace();
return "ERROR";
}
} catch (ZhongAnOpenException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "ERROR";
}
return "SUCCESS";
}
public static void main(String[] args) {
//代收付签约银行卡验证交易测试URL