1、中金支付批量代付Tx1510
/**
* 批量代付
* @throws Exception
*/
public static boolean paymentBatchToInvest(long totalAmounts,List<t_bill_invests> invests,List<t_user_bank_accounts> banks) throws Exception{
String institutionID=Constants.INSTITUTIONID;
String batchNo=GUIDGenerator.genGUID();//批次号
long totalAmount=totalAmounts;//总金额
int totalCount=invests.size();//总笔数
String paymentAccountName="";//支付账户名称
String paymentAccountNumber="";//支付账号
Tx1510Request tx1510Request=new Tx1510Request();
tx1510Request.setInstitutionID(institutionID);
tx1510Request.setBatchNo(batchNo);
tx1510Request.setTotalAmount(totalAmount);
tx1510Request.setTotalCount(totalCount);
tx1510Request.setPaymentAccountName(paymentAccountName);
tx1510Request.setPaymentAccountNumber(paymentAccountNumber);
ArrayList<PaymentItem> itemList = new ArrayList<PaymentItem>();
//实现批量代付
for (int i=0;i<invests.size();i++) {
PaymentItem item=new PaymentItem();
String itemNo=invests.get(i).mer_bill_no;//流水号
Double amountD=(invests.get(i).receive_amount*100.0);
Long amount=amountD.longValue();//金额
String bankID=String.valueOf(banks.get(i).bank_code);//银行ID
int accountType=11;//账户类型:11=个人账户 12=企业账户
String accountName=banks.get(i).account_name;//户名
String accountNumber=banks.get(i).account;//户号
String bankName=banks.get(i).branch_bank_name;//支行名称
String province=banks.get(i).province;//支行所在省
String city=banks.get(i).city;//支行所在市
item.setItemNo(itemNo);
item.setAccountName(accountName);
item.setAccountNumber(accountNumber);
item.setAccountType(accountType);
item.setBankID(bankID);
item.setAmount(amount);
item.setBranchName(bankName);
item.setProvince(province);
item.setCity(city);
itemList.add(item);
}
tx1510Request.setItemList(itemList);
// 3.执行报文处理
Tx1510Response tx1510Response = getTx1510Response(tx1510Request);
String code = tx1510Response.getCode();
logger.info("报文上传结果"+tx1510Response.getMessage()+"******"+code);
if(code.equals("2000")){
return true;
}
return false;
}
2、获得响应类
@Override
public Tx1510Response queryPayrollResult (Tx1510Request tx1510Request) throws Exception {
tx1510Request.process();
TxMessenger txMessenger = new TxMessenger();
String[] respMsg = txMessenger.send(tx1510Request.getRequestMessage(), tx1510Request.getRequestSignature());
Tx1510Response tx1510Response = new Tx1510Response(respMsg[0], respMsg[1]);
Logger.info("[queryPayrollResult_Message]=[" + tx1510Response.getResponsePlainText() + "]");
return tx1510Response;
}