【实例简介】

【实例截图】

目录

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相关推荐

  1. java 网银支付收款接口_农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2.pdf...

    农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2 中国农业银行网上支付平台 商户接口编程指南 Java Edition V3.0.2 农行网上支付平台 商户接口编程指南 –J ...

  2. 农行app怎么开消息服务器,农行网上支付平台-交易市场接口编程指南.doc

    农行网上支付平台-交易市场接口编程指南 中国农业银行网上支付平台 交易市场 PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者2009/11/18V1.0初稿童 ...

  3. 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 ...

  4. 农行支付php,农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0.doc

    农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0 中国农业银行网上支付平台 B2C PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者200 ...

  5. php 银行支付通道_接口--php对接农行网上支付平台-b2b

    对接农行网上支付平台 从银行那边获取到对应的接口包 将文件保存在网站的路径中 我是destoon网站系统对接,就放在了api/pay/新建一个文件夹abc/下 完成之后填写接口的配置文件 路径:ebu ...

  6. java支付系统设计文档_中国邮政储蓄银行网上支付平台商户开发指南Java版V2.1

    网上支付平台商户开发指南 第12页,共76页 上图中一共有6个条目,包括生产用的网关证书(paygate_cert )和生产证书链(operation_ca, operation_ca2, polic ...

  7. 接口--php对接农行网上支付平台-b2b

    对接农行网上支付平台 从银行那边获取到对应的接口包 将文件保存在网站的路径中 我是destoon网站系统对接,就放在了api/pay/新建一个文件夹abc/下 完成之后填写接口的配置文件 路径:ebu ...

  8. java计算机毕业设计-英杰学堂网上教学平台-源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计-英杰学堂网上教学平台-源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计-英杰学堂网上教学平台-源程序+mysql+系统+lw文档+远程调试 本源码技术栈: ...

  9. 网上支付平台接口使用总结

    2019年年底,也就是12月31号那天,西安这边的项目组工作已经结束,项目组人员调回武汉,时隔两年,终于回武汉了! 这次回武汉,进入一个与政府有关的项目,主要做统一支付平台. 主要是归纳一下支付有关的 ...

最新文章

  1. 如何让Python不回显获取密码输入
  2. 互联网高并发架构设计模式
  3. 你了解过Spring支持的常用数据库事务传播属性和隔离级别吗?来一起看看吧!!!
  4. CentOS 7上搭建Spark3.0.1+ Hadoop3.2.1分布式集群
  5. android删除电池功能,Android教程:删除电池信息增加待机时间
  6. 华为Mate30、iPhone11、小米9 Pro 到底怎么选?
  7. 2.重新安装CM服务
  8. 无人驾驶项目——交通标志识别
  9. 用户故事与敏捷方法—概况
  10. 新手如何快速上手双拼,提高打字速度-by小鹤双拼输入法QQ群友-弧
  11. OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
  12. 大数据Top K问题
  13. [Ant]Note of develop java with Ant
  14. 影视之我看——写自己的剧本
  15. Referrer 还是 Referer?
  16. 技术解密之百度搜索中台低代码的探索与实践
  17. IT就业前景怎么样?好不好?
  18. Windows搭建青龙面板教程
  19. 海信IP202H盒子破解方法
  20. 经典密码学与现代密码学

热门文章

  1. 苹果iPhone自研PC处理器架构细节曝光:性能对比Intel直接溢出
  2. 名编辑电子杂志大师教程 | 名编辑设计设置面板
  3. 自动售卖机的类型和工作流程分析
  4. 百度地图获取经纬度和当前精确位置名称
  5. 00后大学生:精美绝伦的微积分教科书
  6. 对K个不同字符的全排列组成的数组, 面试官从中随机拿走了一个, 剩下的数组作为输入, 请帮忙找出这个被拿走的字符串?
  7. java 给qq邮箱发邮件_Java使用QQ邮箱给其他邮箱发邮件
  8. 【Idea技巧】02.Idea包进行展开
  9. 关系型数据库Oracle之RMAN备份ORA-19625等错误解决办法
  10. 教你如何调整每段视频的帧速率