java收款编程_农行网上支付平台-商户接口编程指南-Java_Edition-V3.1.6.pdf
【实例简介】
【实例截图】
目录
1. 简介...........................................................................................................................................5
1.1 目的.............................................................................................................................................................5
1.2 功能描述.....................................................................................................................................................5
1.3 总体架构图.................................................................................................................................................5
2. 接口开发软件包说明...............................................................................................................6
3. 安装步骤.................................................................................................................................10
3.1 安装前检查...............................................................................................................................................10
3.2 接口开发软件包安装.............................................................................................................................. 10
3.3 接口开发软件包配置.............................................................................................................................. 10
3.4 配置测试应用...........................................................................................................................................10
4. 配置文件说明.........................................................................................................................11
4.1 从配置文件中读取配置项...................................................................................................................... 11
4.1.1 TrustMerchant.properties 文件.....................................................................................................11
单个商户配置说明.......................................................................................................................................11
多商户配置说明...........................................................................................................................................12
4.1.2 ConfigSource.properties 文件...................................................................................................... 13
4.2 从数据库中读取配置项.......................................................................................................................... 13
4.2.1 ConfigSource.properties 文件...................................................................................................... 13
5. 客户本地化开发.....................................................................................................................14
6. 交易说明.................................................................................................................................16
6.1 交易流程...................................................................................................................................................16
6.1.1 支付交易...........................................................................................................................................16
6.1.2 确保支付结果正确送达商户网站的措施...................................................................................... 18
6.1.3 其它交易...........................................................................................................................................19
6.2 交易使用时机...........................................................................................................................................19
6.3 支付请求...................................................................................................................................................21
6.3.1 方式 1:通过与农行服务器建立连接访问农行支付平台服务...................................................21
6.3.2 方式 2:通过页面传参提交表单方式访问农行支付平台服务...................................................24
6.4 两种接收支付结果方式的区别.............................................................................................................. 26
6.4.1 通过显示给消费者的支付结果接收页面通知商户......................................................................26
6.4.2 通过支付平台服务器通知商户...................................................................................................... 27
6.4.3 区别...................................................................................................................................................29
6.5 支付结果接收页面...................................................................................................................................30
6.6 单笔退款...................................................................................................................................................31
6.7 批量退款...................................................................................................................................................33
6.8 批量退款查询...........................................................................................................................................35
6.9 单笔交易查询...........................................................................................................................................37
6.10 交易明细查询.........................................................................................................................................38
6.11 对账单查询.............................................................................................................................................39
6.12 网上 K 码支付—账单发送....................................................................................................................41
6.13 网上 K 码支付—支付请求....................................................................................................................44
6.14 网上 K 码支付—验证码重发................................................................................................................46
6.15 授权支付签约(银行端).................................................................................................................... 47
6.16 授权支付签约(商户端)—申请........................................................................................................ 48
农行网上支付平台
商户接口编程指南 – Java Edition – V3.1.6
网上支付平台开发小组 3 of 165
6.17 授权支付签约(商户端)—确认........................................................................................................ 49
6.18 授权支付签约(商户端)—验证码重发............................................................................................ 50
6.19 授权支付解约.........................................................................................................................................51
6.20 授权支付签约/解约结果查询............................................................................................................... 52
6.21 单笔授权扣款.........................................................................................................................................53
6.22 批量授权扣款.........................................................................................................................................55
6.23 批量授权扣款结果查询........................................................................................................................ 57
6.24 身份验证(页面跳转)........................................................................................................................ 58
6.25 身份验证结果接收................................................................................................................................ 59
6.26 身份验证(非页面跳转).................................................................................................................... 60
6.27 预授权确认/取消................................................................................................................................... 61
6.28 实时账单查询.........................................................................................................................................62
6.29 缴费结果接收.........................................................................................................................................63
6.30 微信支付请求.........................................................................................................................................64
6.31 支付宝支付请求.....................................................................................................................................69
6.32 二级商户信息同步................................................................................................................................ 73
6.33 内转交易请求.........................................................................................................................................75
6.34 出金交易请求.........................................................................................................................................76
6.35 二级商户余额查询................................................................................................................................ 77
6.36 微信支付宝对账单下载........................................................................................................................ 78
6.37 内转出金对账单下载............................................................................................................................ 80
6.38 电子回单下载.........................................................................................................................................81
6.39 垫资户模式微信支付宝对账单下载.................................................................................................... 81
6.40 平台商户对账单下载............................................................................................................................ 83
6.41 鉴权交易查询.........................................................................................................................................84
6.42 出金查询.................................................................................................................................................85
6.43 订单撤销请求.........................................................................................................................................85
附录一、程序范例.......................................................................................................................87
附录二、响应码一览表...............................................................................................................88
附录三、TRUSTPAY CLIENT API..........................................................................................90
COM.ABC.PAY.CLIENT.TRXRESPONSE.............................................................................................................90
COM.ABC.PAY.CLIENT.TRXREQUEST............................................................................................................... 91
COM.ABC.PAY.CLIENT.EBUS.PAYMENTREQUEST............................................................................................ 92
COM.ABC.PAY.CLIENT.EBUS.PAYMENTRESULT............................................................................................... 96
COM.ABC.PAY.CLIENT.EBUS.QUERYORDERREQUEST....................................................................................98
COM.ABC.PAY.CLIENT.EBUS.REFUNDREQUEST............................................................................................104
COM.ABC.PAY.CLIENT.EBUS.SETTLEREQUEST............................................................................................. 106
COM.ABC.PAY.CLIENT.EBUS.AGENTBATCHPAYMENTQUERYREQUEST.......................................................108
COM.ABC.PAY.CLIENT.EBUS.AGENTBATCHPAYMENTREQU
农行网上支付平台
商户接口编程指南 – Java Edition – V3.1.6
网上支付平台开发小组 4 of 165
COM.ABC.PAY.CLIENT.EBUS.QUICKIDENTITYVERIFYREQUEST.................................................................... 134
COM.ABC.PAY.CLIENT.EBUS.QUICKPAYMENTREQUEST............................................................................... 135
COM.ABC.PAY.CLIENT.EBUS.QUICKPAYMENTRESEND.................................................................................138
COM.ABC.PAY.CLIENT.EBUS.QUICKPAYMENTSEND......................................................................................139
COM.ABC.PAY.CLIENT.EBUS.PAYMENTMERCHANT....................................................................................... 141
COM.ABC.PAY.CLIENT.EBUS.PAYMENTMERCHANTBEAN..............................................................................142
COM.ABC.PAY.CLIENT.EBUS.UNIFIEDPAYMENTREQUEST............................................................................ 143
COM.ABC.PAY.CLIENT.EBUS.REGSUBMERCHANTINFOREQUEST................................................................ 147
COM.ABC.PAY.CLIENT.EBUS.SETTLEREQUESTALIWX................................................................................. 149
COM.ABC.PAY.CLIENT.EBUS.SETTLEREQUESTTRANSFER........................................................................... 151
COM.ABC.PAY.CLIENT.EBUS.ALIPAYREQUEST.............................................................................................. 152
COM.ABC.PAY.CLIENT.EBUS.INNERPAYMENTREQUEST................................................................................156
COM.ABC.PAY.CLIENT.EBUS.OUTPAYMENTREQUEST...................................................................................157
COM.ABC.PAY.CLIENT.EBUS.SUBMERACCBALQRYREQUEST..................................................................... 159
COM.ABC.PAY.CLIENT.EBUS.GETRECEIPTREQUEST.................................................................................... 159
COM.ABC.PAY.CLIENT.EBUS.SETTLEREQUESTALIWXDZH......................................................................... 160
COM.ABC.PAY.CLIENT.EBUS.SETTLEREQUESTPLATFORM...........................................................................162
COM.ABC.PAY.CLIENT.EBUS.AUTHENMERCHANTQUERYREQUEST............................................................. 163
COM.ABC.PAY.CLIENT.EBUS.TRANSFEROUTQUERYREQUEST.....................................................................164
COM.ABC.PAY.CLIENT.EBUS.PAYCANCELREQUEST..................................................................................... 165
【核心代码】
package com.guolaiwan.app.abcpay.controller;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.abc.pay.client.Constants;
import com.abc.pay.client.JSON;
import com.abc.pay.client.ebus.PaymentRequest;
import com.abc.pay.client.ebus.PaymentResult;
import com.abc.pay.client.ebus.RefundRequest;
import com.guolaiwan.app.abcpay.PaymentRequestBo;
import com.guolaiwan.app.abcpay.RefundRequestBo;
import com.guolaiwan.app.web.website.controller.WebBaseControll;
@Controller
@RequestMapping("/abcpay")
public class AbcpayController extends WebBaseControll {
/**
* 农行对接支付
* 地址定义为http://www.guolaiwan.net/abcpay/MerchantPayment
* @param request
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/MerchantPayment")
public Object MerchantPayment(HttpServletRequest request, HttpServletResponse response, PaymentRequestBo tPaymentRequestBo)
throws Exception{
request.setCharacterEncoding("GBK");
response.setHeader("Cache-Control", "no-cache");
//1、生成订单对象
PaymentRequest tPaymentRequest = new PaymentRequest();
tPaymentRequest.dicOrder.put("PayTypeID", tPaymentRequestBo.getPayTypeID());//设定交易类型
tPaymentRequest.dicOrder.put("OrderDate", tPaymentRequestBo.getOrderDate());//设定订单日期 (必要信息 - YYYY/MM/DD)
tPaymentRequest.dicOrder.put("OrderTime", tPaymentRequestBo.getOrderTime());//设定订单时间 (必要信息 - HH:MM:SS)
tPaymentRequest.dicOrder.put("orderTimeoutDate", tPaymentRequestBo.getOrderTimeoutDate());//设定订单有效期
tPaymentRequest.dicOrder.put("OrderNo", tPaymentRequestBo.getOrderNo());//设定订单编号 (必要信息)
tPaymentRequest.dicOrder.put("CurrencyCode", tPaymentRequestBo.getCurrencyCode());//设定交易币种
tPaymentRequest.dicOrder.put("OrderAmount", tPaymentRequestBo.getOrderAmount());//设定交易金额
tPaymentRequest.dicOrder.put("Fee", tPaymentRequestBo.getFee());//设定手续费金额
tPaymentRequest.dicOrder.put("AccountNo", tPaymentRequestBo.getAccountNo());//设定支付账户
tPaymentRequest.dicOrder.put("OrderDesc", tPaymentRequestBo.getOrderDesc());//设定订单说明
tPaymentRequest.dicOrder.put("OrderURL", tPaymentRequestBo.getOrderURL());//设定订单地址
tPaymentRequest.dicOrder.put("ReceiverAddress", tPaymentRequestBo.getReceiverAddress());//收货地址
tPaymentRequest.dicOrder.put("InstallmentMark", tPaymentRequestBo.getInstallmentMark());//分期标识
if (tPaymentRequestBo.getInstallmentMark() == "1" && tPaymentRequestBo.getPayTypeID() == "DividedPay")
{
tPaymentRequest.dicOrder.put("InstallmentCode", request.getParameter("InstallmentCode"));//设定分期代码
tPaymentRequest.dicOrder.put("InstallmentNum", request.getParameter("InstallmentNum"));//设定分期期数
}
tPaymentRequest.dicOrder.put("CommodityType", tPaymentRequestBo.getCommodityType());//设置商品种类
tPaymentRequest.dicOrder.put("BuyIP", tPaymentRequestBo.getBuyIP());//IP
tPaymentRequest.dicOrder.put("ExpiredDate", tPaymentRequestBo.getExpiredDate());//设定订单保存时间
//3、生成支付请求对象
String paymentType = tPaymentRequestBo.getPaymentType();
tPaymentRequest.dicRequest.put("PaymentType", paymentType);//设定支付类型
String paymentLinkType = tPaymentRequestBo.getPaymentLinkType();
tPaymentRequest.dicRequest.put("PaymentLinkType", paymentLinkType);//设定支付接入方式
if (paymentType.equals(Constants.PAY_TYPE_UCBP) && paymentLinkType.equals(Constants.PAY_LINK_TYPE_MOBILE))
{
tPaymentRequest.dicRequest.put("UnionPayLinkType",request.getParameter("UnionPayLinkType"));//当支付类型为6,支付接入方式为2的条件满足时,需要设置银联跨行移动支付接入方式
}
tPaymentRequest.dicRequest.put("ReceiveAccount", tPaymentRequestBo.getReceiveAccount());//设定收款方账号
tPaymentRequest.dicRequest.put("ReceiveAccName", tPaymentRequestBo.getReceiveAccName());//设定收款方户名
tPaymentRequest.dicRequest.put("NotifyType", tPaymentRequestBo.getNotifyType());//设定通知方式
tPaymentRequest.dicRequest.put("ResultNotifyURL", tPaymentRequestBo.getResultNotifyURL());//设定通知URL地址
tPaymentRequest.dicRequest.put("MerchantRemarks", tPaymentRequestBo.getMerchantRemarks());//设定附言
tPaymentRequest.dicRequest.put("ReceiveMark", tPaymentRequestBo.getReceiveMark());//交易是否直接入二级商户账户
tPaymentRequest.dicRequest.put("ReceiveMerchantType", tPaymentRequestBo.getReceiveMerchantType());//设定收款方账户类型
tPaymentRequest.dicRequest.put("IsBreakAccount", tPaymentRequestBo.getIsBreakAccount());//设定交易是否分账、交易是否支持向二级商户入账
tPaymentRequest.dicRequest.put("SplitAccTemplate", tPaymentRequestBo.getSplitAccTemplate());//分账模版编号
JSON json = tPaymentRequest.postRequest();
String ReturnCode = json.GetKeyValue("ReturnCode");
String ErrorMessage = json.GetKeyValue("ErrorMessage");
Map ret = new HashMap();
if (ReturnCode.equals("0000"))
{
ret.put("status", "success");
System.out.println("ReturnCode = [" ReturnCode "]
");
System.out.println("ErrorMessage = [" ErrorMessage "]
");
System.out.println("PaymentURL-->" json.GetKeyValue("PaymentURL"));
response.sendRedirect(json.GetKeyValue("PaymentURL"));
}
else
{
ret.put("status", "failed");
ret.put("code", ReturnCode);
ret.put("message", ErrorMessage);
System.out.println("ReturnCode = [" ReturnCode "]");
System.out.println("ErrorMessage = [" ErrorMessage "]");
}
return ret;
}
/**
* 农行对接支付结果
* 地址定义为http://www.guolaiwan.net/abcpay/MerchantResult
* @param request
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/MerchantResult")
public Object MerchantResult(HttpServletRequest request) throws Exception{
//1、取得MSG参数,并利用此参数值生成支付结果对象
String msg = request.getParameter("MSG");
PaymentResult tResult = new PaymentResult(msg);
Map ret = new HashMap();
//2、判断支付结果状态,进行后续操作
if (tResult.isSuccess()) {
//3、支付成功并且验签、解析成功
System.out.println("TrxType = [" tResult.getValue("TrxType" ) "]
");
System.out.println("OrderNo = [" tResult.getValue("OrderNo" ) "]
");//订单号
System.out.println("Amount = [" tResult.getValue("Amount" ) "]
");//订单金额
System.out.println("BatchNo = [" tResult.getValue("BatchNo" ) "]
");//交易批次号
System.out.println("VoucherNo = [" tResult.getValue("VoucherNo" ) "]
");//交易凭证号
System.out.println("HostDate = [" tResult.getValue("HostDate" ) "]
");//银行交易日期
System.out.println("HostTime = [" tResult.getValue("HostTime" ) "]
");//银行交易时间
System.out.println("MerchantRemarks = [" tResult.getValue("MerchantRemarks") "]
");//商户备注信息
System.out.println("PayType = [" tResult.getValue("PayType" ) "]
");//消费者支付方式
System.out.println("NotifyType = [" tResult.getValue("NotifyType" ) "]
");//支付结果通知方式
System.out.println("TrnxNo = [" tResult.getValue("iRspRef" ) "]
");//银行返回交易流水号
System.out.println("BankType = [" tResult.getValue("bank_type" ) "]
");//付款银行(微信)
System.out.println("ThirdOrderNo = [" tResult.getValue("ThirdOrderNo" ) "]
");//第三方订单号(微信和支付宝)
ret.put("status", "success");
}
else {
//4、支付成功但是由于验签或者解析报文等操作失败
System.out.println("ReturnCode = [" tResult.getReturnCode () "]
");
System.out.println("ErrorMessage = [" tResult.getErrorMessage() "]
");
ret.put("status", "failed");
ret.put("code", tResult.getReturnCode ());
ret.put("message", tResult.getErrorMessage());
}
return ret;
}
/**
* 农行对接退款及退款结果
* 地址定义为http://www.guolaiwan.net/abcpay/MerchantRefund
* @param request
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/MerchantRefund")
public Object MerchantRefund(HttpServletRequest request, HttpServletResponse response, RefundRequestBo tRefundRequestBo)
throws Exception{
request.setCharacterEncoding("gb2312");
response.setHeader("Cache-Control", "no-cache");
//1、生成退款请求对象
RefundRequest tefundRequest = new RefundRequest();
tefundRequest.dicRequest.put("OrderDate", tRefundRequestBo.getOrderDate());//订单日期(必要信息)
tefundRequest.dicRequest.put("OrderTime", tRefundRequestBo.getOrderTime());//订单时间(必要信息)
tefundRequest.dicRequest.put("OrderNo", tRefundRequestBo.getOrderNo()); //原交易编号(必要信息)
tefundRequest.dicRequest.put("NewOrderNo", tRefundRequestBo.getNewOrderNo());//交易编号(必要信息)
tefundRequest.dicRequest.put("CurrencyCode", tRefundRequestBo.getCurrencyCode());//交易币种(必要信息)
tefundRequest.dicRequest.put("TrxAmount", tRefundRequestBo.getTrxAmount());//退货金额 (必要信息)
tefundRequest.dicRequest.put("RefundType", tRefundRequestBo.getRefundType());//退货类型 (非必要信息)
tefundRequest.dicRequest.put("MerchantRemarks", tRefundRequestBo.getMerchantRemarks());//附言
//3、传送退款请求并取得退货结果
JSON json = tefundRequest.postRequest();
//4、判断退款结果状态,进行后续操作
StringBuilder strMessage = new StringBuilder("");
String ReturnCode = json.GetKeyValue("ReturnCode");
String ErrorMessage = json.GetKeyValue("ErrorMessage");
Map ret = new HashMap();
if (ReturnCode.equals("0000"))
{
//5、退款成功/退款受理成功
System.out.println("ReturnCode = [" ReturnCode "]
");
System.out.println("ErrorMessage = [" ErrorMessage "]
");
System.out.println("OrderNo = [" json.GetKeyValue("OrderNo") "]
");
System.out.println("NewOrderNo = [" json.GetKeyValue("NewOrderNo") "]
");
System.out.println("TrxAmount = [" json.GetKeyValue("TrxAmount") "]
");
System.out.println("BatchNo = [" json.GetKeyValue("BatchNo") "]
");
System.out.println("VoucherNo = [" json.GetKeyValue("VoucherNo") "]
");
System.out.println("HostDate = [" json.GetKeyValue("HostDate") "]
");
System.out.println("HostTime = [" json.GetKeyValue("HostTime") "]
");
System.out.println("iRspRef = [" json.GetKeyValue("iRspRef") "]
");
ret.put("status", "success");
}
else
{
//6、退款失败
System.out.println("ReturnCode = [" ReturnCode "]
");
System.out.println("ErrorMessage = [" ErrorMessage "]
");
ret.put("status", "failed");
ret.put("code", ReturnCode);
ret.put("message", ErrorMessage);
}
return ret;
}
/**
* 农行对接支付(备用)
* demo中MerchantPayment.jsp代码
* @param request
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/MerchantPaymentDemo")
public void MerchantPaymentDemo(HttpServletRequest request, HttpServletResponse response) throws Exception{
request.setCharacterEncoding("GBK");
response.setHeader("Cache-Control", "no-cache");
//1、生成订单对象
PaymentRequest tPaymentRequest = new PaymentRequest();
tPaymentRequest.dicOrder.put("PayTypeID", request.getParameter("PayTypeID")); //设定交易类型
tPaymentRequest.dicOrder.put("OrderDate", request.getParameter("OrderDate") ); //设定订单日期 (必要信息 - YYYY/MM/DD)
tPaymentRequest.dicOrder.put("OrderTime", request.getParameter("OrderTime")); //设定订单时间 (必要信息 - HH:MM:SS)
tPaymentRequest.dicOrder.put("orderTimeoutDate", request.getParameter("orderTimeoutDate")); //设定订单有效期
tPaymentRequest.dicOrder.put("OrderNo", request.getParameter("OrderNo")); //设定订单编号 (必要信息)
tPaymentRequest.dicOrder.put("CurrencyCode", request.getParameter("CurrencyCode")); //设定交易币种
tPaymentRequest.dicOrder.put("OrderAmount", request.getParameter("PaymentRequestAmount")); //设定交易金额
tPaymentRequest.dicOrder.put("Fee", request.getParameter("Fee")); //设定手续费金额
tPaymentRequest.dicOrder.put("AccountNo", request.getParameter("AccountNo")); //设定支付账户
tPaymentRequest.dicOrder.put("OrderDesc", request.getParameter("OrderDesc")); //设定订单说明
tPaymentRequest.dicOrder.put("OrderURL", request.getParameter("OrderURL")); //设定订单地址
tPaymentRequest.dicOrder.put("ReceiverAddress", request.getParameter("ReceiverAddress")); //收货地址
tPaymentRequest.dicOrder.put("InstallmentMark", request.getParameter("InstallmentMark")); //分期标识
if (request.getParameter("InstallmentMark") == "1" && request.getParameter("PayTypeID") == "DividedPay")
{
tPaymentRequest.dicOrder.put("InstallmentCode", request.getParameter("InstallmentCode")); //设定分期代码
tPaymentRequest.dicOrder.put("InstallmentNum", request.getParameter("InstallmentNum")); //设定分期期数
}
tPaymentRequest.dicOrder.put("CommodityType", request.getParameter("CommodityType")); //设置商品种类
tPaymentRequest.dicOrder.put("BuyIP", request.getParameter("BuyIP")); //IP
tPaymentRequest.dicOrder.put("ExpiredDate", request.getParameter("ExpiredDate")); //设定订单保存时间
//2、订单明细
LinkedHashMap orderitem = new LinkedHashMap();
orderitem.put("SubMerName", "测试二级商户1"); //设定二级商户名称
orderitem.put("SubMerId", "12345"); //设定二级商户代码
orderitem.put("SubMerMCC", "0000"); //设定二级商户MCC码
orderitem.put("SubMerchantRemarks", "测试"); //二级商户备注项
orderitem.put("ProductID", "IP000001");//商品代码,预留字段
orderitem.put("ProductName", "中国移动IP卡");//商品名称
orderitem.put("UnitPrice", "1.00");//商品总价
orderitem.put("Qty", "1");//商品数量
orderitem.put("ProductRemarks", "测试商品"); //商品备注项
orderitem.put("ProductType", "充值类");//商品类型
orderitem.put("ProductDiscount", "0.9");//商品折扣
orderitem.put("ProductExpiredDate", "10");//商品有效期
tPaymentRequest.orderitems.put(1, orderitem);
orderitem = new LinkedHashMap();
orderitem.put("SubMerName", "测试二级商户1"); //设定二级商户名称
orderitem.put("SubMerId", "12345"); //设定二级商户代码
orderitem.put("SubMerMCC", "0000"); //设定二级商户MCC码
orderitem.put("SubMerchantRemarks", "测试"); //二级商户备注项
orderitem.put("ProductID", "IP000001");//商品代码,预留字段
orderitem.put("ProductName", "中国联通IP卡");//商品名称
orderitem.put("UnitPrice", "1.00");//商品总价
orderitem.put("Qty", "2");//商品数量
orderitem.put("ProductRemarks", "测试商品"); //商品备注项
orderitem.put("ProductType", "充值类");//商品类型
orderitem.put("ProductDiscount", "0.9");//商品折扣
orderitem.put("ProductExpiredDate", "10");//商品有效期
tPaymentRequest.orderitems.put(2, orderitem);
//3、生成支付请求对象
String paymentType = request.getParameter("PaymentType");
tPaymentRequest.dicRequest.put("PaymentType", paymentType); //设定支付类型
String paymentLinkType = request.getParameter("PaymentLinkType");
tPaymentRequest.dicRequest.put("PaymentLinkType", paymentLinkType); //设定支付接入方式
if (paymentType.equals(Constants.PAY_TYPE_UCBP) && paymentLinkType.equals(Constants.PAY_LINK_TYPE_MOBILE))
{
tPaymentRequest.dicRequest.put("UnionPayLinkType",request.getParameter("UnionPayLinkType")); //当支付类型为6,支付接入方式为2的条件满足时,需要设置银联跨行移动支付接入方式
}
tPaymentRequest.dicRequest.put("ReceiveAccount", request.getParameter("ReceiveAccount")); //设定收款方账号
tPaymentRequest.dicRequest.put("ReceiveAccName", request.getParameter("ReceiveAccName")); //设定收款方户名
tPaymentRequest.dicRequest.put("NotifyType", request.getParameter("NotifyType")); //设定通知方式
tPaymentRequest.dicRequest.put("ResultNotifyURL", request.getParameter("ResultNotifyURL")); //设定通知URL地址
tPaymentRequest.dicRequest.put("MerchantRemarks", request.getParameter("MerchantRemarks")); //设定附言
tPaymentRequest.dicRequest.put("ReceiveMark",request.getParameter("ReceiveMark")); //交易是否直接入二级商户账户
tPaymentRequest.dicRequest.put("ReceiveMerchantType",request.getParameter("ReceiveMerchantType")); //设定收款方账户类型
tPaymentRequest.dicRequest.put("IsBreakAccount", request.getParameter("IsBreakAccount")); //设定交易是否分账、交易是否支持向二级商户入账
tPaymentRequest.dicRequest.put("SplitAccTemplate", request.getParameter("SplitAccTemplate")); //分账模版编号
//4、添加分账信息
String[] SubMerchantID_arr = new String[]{};
String[] SplitAmount_arr = new String[]{};
SubMerchantID_arr = request.getParameterValues("SplitMerchantID");
SplitAmount_arr = request.getParameterValues("SplitAmount");
LinkedHashMap map = null;
if(SubMerchantID_arr != null){
for (int i = 0; i < SubMerchantID_arr.length; i )
{
map = new LinkedHashMap();
//map.put("SeqNo ", String.valueOf(i 1));
map.put("SplitMerchantID",SubMerchantID_arr[i]);
map.put("SplitAmount",SplitAmount_arr[i]);
tPaymentRequest.dicSplitAccInfo.put(i 1, map);
}
}
JSON json = tPaymentRequest.postRequest();
//JSON json = tPaymentRequest.extendPostRequest(1);
String ReturnCode = json.GetKeyValue("ReturnCode");
String ErrorMessage = json.GetKeyValue("ErrorMessage");
if (ReturnCode.equals("0000"))
{
System.out.println("ReturnCode = [" ReturnCode "]
");
System.out.println("ErrorMessage = [" ErrorMessage "]
");
System.out.println("PaymentURL-->" json.GetKeyValue("PaymentURL"));
response.sendRedirect(json.GetKeyValue("PaymentURL"));
}
else
{
System.out.println("ReturnCode = [" ReturnCode "]");
System.out.println("ErrorMessage = [" ErrorMessage "]");
}
}
}
java收款编程_农行网上支付平台-商户接口编程指南-Java_Edition-V3.1.6.pdf相关推荐
- java 网银支付收款接口_农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2.pdf...
农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2 中国农业银行网上支付平台 商户接口编程指南 Java Edition V3.0.2 农行网上支付平台 商户接口编程指南 –J ...
- 农行app怎么开消息服务器,农行网上支付平台-交易市场接口编程指南.doc
农行网上支付平台-交易市场接口编程指南 中国农业银行网上支付平台 交易市场 PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者2009/11/18V1.0初稿童 ...
- java版农业银行_农行网上支付平台_商户接口编程指南-java_edition-v103.pdf
农行网上支付平台_商户接口编程指南-java_edition-v103 Java Edition V1.0.3 –– 2003/ 11/26 V0.1 2003/ 12/ 10 V0.2 2003-1 ...
- 农行支付php,农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0.doc
农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0 中国农业银行网上支付平台 B2C PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者200 ...
- php 银行支付通道_接口--php对接农行网上支付平台-b2b
对接农行网上支付平台 从银行那边获取到对应的接口包 将文件保存在网站的路径中 我是destoon网站系统对接,就放在了api/pay/新建一个文件夹abc/下 完成之后填写接口的配置文件 路径:ebu ...
- java支付系统设计文档_中国邮政储蓄银行网上支付平台商户开发指南Java版V2.1
网上支付平台商户开发指南 第12页,共76页 上图中一共有6个条目,包括生产用的网关证书(paygate_cert )和生产证书链(operation_ca, operation_ca2, polic ...
- 接口--php对接农行网上支付平台-b2b
对接农行网上支付平台 从银行那边获取到对应的接口包 将文件保存在网站的路径中 我是destoon网站系统对接,就放在了api/pay/新建一个文件夹abc/下 完成之后填写接口的配置文件 路径:ebu ...
- java计算机毕业设计-英杰学堂网上教学平台-源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计-英杰学堂网上教学平台-源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计-英杰学堂网上教学平台-源程序+mysql+系统+lw文档+远程调试 本源码技术栈: ...
- 网上支付平台接口使用总结
2019年年底,也就是12月31号那天,西安这边的项目组工作已经结束,项目组人员调回武汉,时隔两年,终于回武汉了! 这次回武汉,进入一个与政府有关的项目,主要做统一支付平台. 主要是归纳一下支付有关的 ...
最新文章
- 如何让Python不回显获取密码输入
- 互联网高并发架构设计模式
- 你了解过Spring支持的常用数据库事务传播属性和隔离级别吗?来一起看看吧!!!
- CentOS 7上搭建Spark3.0.1+ Hadoop3.2.1分布式集群
- android删除电池功能,Android教程:删除电池信息增加待机时间
- 华为Mate30、iPhone11、小米9 Pro 到底怎么选?
- 2.重新安装CM服务
- 无人驾驶项目——交通标志识别
- 用户故事与敏捷方法—概况
- 新手如何快速上手双拼,提高打字速度-by小鹤双拼输入法QQ群友-弧
- OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
- 大数据Top K问题
- [Ant]Note of develop java with Ant
- 影视之我看——写自己的剧本
- Referrer 还是 Referer?
- 技术解密之百度搜索中台低代码的探索与实践
- IT就业前景怎么样?好不好?
- Windows搭建青龙面板教程
- 海信IP202H盒子破解方法
- 经典密码学与现代密码学
热门文章
- 苹果iPhone自研PC处理器架构细节曝光:性能对比Intel直接溢出
- 名编辑电子杂志大师教程 | 名编辑设计设置面板
- 自动售卖机的类型和工作流程分析
- 百度地图获取经纬度和当前精确位置名称
- 00后大学生:精美绝伦的微积分教科书
- 对K个不同字符的全排列组成的数组, 面试官从中随机拿走了一个, 剩下的数组作为输入, 请帮忙找出这个被拿走的字符串?
- java 给qq邮箱发邮件_Java使用QQ邮箱给其他邮箱发邮件
- 【Idea技巧】02.Idea包进行展开
- 关系型数据库Oracle之RMAN备份ORA-19625等错误解决办法
- 教你如何调整每段视频的帧速率