工商银行支付接口开发Java

  • 工银聚融资开发
  • 工行E企付B2B接口开发
  • 工行B2C接口开发(待定)

工银聚融资开发

一.开发步骤
1.首要的跟工行对接人员要到参考demo,里面有需要用到的工行jar包,以及各个接口代码;
2.根据工行要求下载OpenSSL生成公私钥对,公钥提供给工行,私钥自己在调接口时传入;
3.在项目web-inf目录下面,创建文件夹存放cer证书,在调用工行接口时需要传入.

二.以融资单据上传接口为例
1.拼接请求报文,按照工行接口文档中的格式拼接就行,这里就不展示完整的了


2.将拼接的报文转换成Base64格式

对应代码:
public static String base64Encode(String data,String charset){
String b64Reqdata ;
BASE64Encoder b64enc = new BASE64Encoder();
try {
b64Reqdata = b64enc.encode(data.getBytes(charset));
//数据去空格与转行字符
b64Reqdata = b64Reqdata.replaceAll("\r\n", “”).replaceAll("\n","");
b64Reqdata = b64Reqdata.replaceAll("\n", “”);
} catch (Exception e) {
return null;
}
return b64Reqdata;
}
3.创建工行融资接口请求参数对象

4.创建接口请求对象

5.调用工行接口,获取响应

6.完整代码
public ApplyOnlinePayResponse orderUpload(List orderInfoDtos, String transCode) {
ApplyOnlinePayResponse payResponse = new ApplyOnlinePayResponse();
//1.加载交易报文
StringBuilder reqdata = new StringBuilder();
//1.1加载公共部分报文
reqdata.append(MessageCreateUtil.commonMessage(transCode, icbcLoanBean.getMerid()));
//1.2加载入参报文
reqdata.append(MessageCreateUtil.orderMessage(orderInfoDtos));
//1.3明文数据转换成base64数据方式
String b64Reqdata = Tool.base64Encode(reqdata.toString(), icbcLoanBean.getCharset());
ApiRequest req = new ApiRequest(icbcLoanBean.getApiurl(), “com.icbc.gyj.eloansplus.orderupload”, icbcLoanBean.getAppid());
req.setRequestField(“version”, Constants.VERSION);
req.setRequestField(“charset”, icbcLoanBean.getCharset());
req.setRequestField(“merid”, icbcLoanBean.getMerid());
req.setRequestField(“trancode”, transCode);
req.setRequestField(“reqdata”, b64Reqdata);
try {
//调用工行接口
ApiClient ac = new ApiClient(icbcLoanBean.getPriKey(), new Tool().getWEBINFPath() + icbcLoanBean.getPubPath());
//响应对象
ApiResponse ar = ac.execute(req);
//解析响应 获取data
IcbcResponse icbcResponse = getRespone(ar);
Element root = icbcResponse.getElement();
//封装xx需要的对象
if (!Constants.STRING_CODE_000.equals(icbcResponse.getStatus())) {
//若状态不为000则表示工行接口问题
payResponse.setPayHttpStatus(xxx);
} else {
if (Constants.STRING_CODE_200.equals(icbcResponse.getRetCode())) {
List uploadRes = new ArrayList();

                Element rds = root.element("out");List<Element> rdnodes = rds.elements("rd");//获取单据上传的反馈信息for (Element rdnode : rdnodes) {OrderUploadRes orderUploadRes = new OrderUploadRes();orderUploadRes.setOrderNo(rdnode.elementText("OrderNo"));String uploadStatus = rdnode.elementText("UploadStatus");String uploadMessage = rdnode.elementText("UploadMessage");if ("0".equals(uploadStatus)) {//可能是参数问题payResponse.setPayHttpStatus(PayHttpStatus.PARAMETRIC_FAILED);return payResponse;}orderUploadRes.setUploadStatus(uploadStatus);orderUploadRes.setUploadMessage(uploadMessage);uploadRes.add(orderUploadRes);}payResponse.setObj(uploadRes);payResponse.setPayHttpStatus(PayHttpStatus.OK);} else {//可能是参数问题}}} catch (Exception e) {}return payResponse;
}

**

工行E企付B2B接口开发

**
一.前期准备,B2B接口跟融资接口调用不太一样
1.该类接口除了需要用到自己生成的公私钥之外,还需要工行提供的"网关公钥"


二.开发步骤
1.以支付申请查询接口为例,入参对象,请求对象,响应对象都是工行jar包里面的

MybankPayCpayCporderqueryRequestV1 request = new MybankPayCpayCporderqueryRequestV1();

request.setServiceUrl(“https://”+icbcIP+":"+icbcPort+"/api/mybank/pay/cpay/cporderquery/V2");

MybankPayCpayCporderqueryRequestV1.QueryPayApplyRequestV1Biz bizContent = new MybankPayCpayCporderqueryRequestV1.QueryPayApplyRequestV1Biz();
bizContent.setAgreeCode(agreeCode);
bizContent.setOrderCode(infoDto.getOrderId());
bizContent.setPartnerSeq(infoDto.getPartnerSeq());

request.setBizContent(bizContent);

 try {MybankPayCpayCporderqueryResponseV1 responseV1 = excuteIcbcB2b(request);if (responseV1.isSuccess()) {payResponse.setPayHttpStatus(PayHttpStatus.OK);payResponse.setObj(responseV1);} else {payResponse.setPayHttpStatus(PayHttpStatus.PARAMETRIC_FAILED);}} catch (Exception e) {payResponse.setPayHttpStatus(PayHttpStatus.API_FAILED);return payResponse;}return payResponse;
}   2.注意:工行B2B模块测试环境时间不是当前时间,当出现提示"终端上送工作日期和主机系统日期不一致"时,需要跟工行人员询问当前的测试环境时间.

工行B2C接口开发(待定)

总的来说,工行支付接口对接还是挺简单的,主要是跟工行人员多沟通,有什么不懂的就问.但是坑就坑在B2B 跟 B2C 两个模块的对接人员太拖拉,而且不一定是让开发人员来对接,而是让测试人员来对接,一旦出现什么问题就会要求你对照demo上的代码.耗费了我不少时间~~~坑

工商银行支付接口开发Java相关推荐

  1. java支付接口开发原理_java对接微信支付接口开发的过程是什么?

    java对接微信支付接口开发的过程是什么?以下是小编整理的java对接微信支付接口实现的方法和过程,有需要的朋友可以学习以下的java对接微信支付接口内容. java对接微信支付接口开发的过程是什么? ...

  2. 支付宝WAP支付接口开发

    支付宝WAP支付接口开发 因项目需要,要增加支付宝手机网站支付功能,找了支付宝的样例代码和接口说明,折腾两天搞定,谨以此文作为这两天摸索的总结.由于公司有自己的支付接口,并不直接使用这个接口,所以晚些 ...

  3. php银联支付接口 demo,php版银联支付接口开发简单实例详解

    这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下 支付接口现在有第三方的支付接口也有银行的支付接口.这里就来介绍 ...

  4. PHP银联在线支付接口开发日志

    银联在线支付接口开发日志 1. 登录银联自助化测试平台(登陆地址:open.unionpay.com),登录后,点击我的产品,如下:点击右方需要测试的接口,本例以 手机网页支付(WAP支付)为例. 2 ...

  5. [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回

    [ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回 1.经验1 直接建立一个支付页面 /** * ecshop 支付接口开发 测试 * ======= ...

  6. 公众号php支付接口开发,公众号支付接口的开发

    这次给大家带来公众号支付接口的开发,公众号支付接口开发的注意事项有哪些,下面就是实战案例,一起来看一下. 公众号支付就是在微信里面的H5页面唤起微信支付,不用扫码即可付款的功能.做这个功能首先要明确的 ...

  7. 微信支付接口开发流程

    第一步,微信支付接口申请: [1]首先需要申请成为服务号,并在申请微信认证后: [2]填写商户基本资料.业务基本资料.财务审核资料. [3]通过审核进入开发流程,通过开发接口文档的指引,完成开发. [ ...

  8. php对接工行h5支付,做过工商银行B2C支付接口开发的朋友来帮帮看看

    用工行给的demo做测试,但是总是报错: Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use e ...

  9. 说说第三方支付接口开发及开发中遇到的坑爹问题

    前言 最近在做公司的支付接口,从微信支付到各种第三方的支付接口,还有点卡等支付,微信支付文档相对比较详细,虽然也不少坑,被各路开发人员吐槽,但是填的人多啊,所以是最好开发的,但是公司还有用到一些第三方 ...

  10. Android_APP 微信支付接口开发

    1.首先说一下我们在开发微信支付接口的时候遇到最多和最疑惑的问题,那就是明明 appid.商户号.API密钥 都对照了好几遍确实是和自己的一样,并且也没有在Log日志中出现签名错误等信息,却始终调不起 ...

最新文章

  1. Window对象中的函数confirm方法的简单介绍
  2. jwebsocket
  3. nrf51822蓝牙芯片ble_app_proximity程序总结
  4. SQL Server 2008存储过程的加密
  5. python求pai的近似值_PR Sampling Ⅰ: 蒙特卡洛采样、重要性采样及python实现
  6. Flex 常见问题解答(from MM)
  7. 洛谷P1346-电车【日常图论,最短路,SPFA】
  8. 如何在maven工程中加载oracle驱动
  9. opencv 编译静态库
  10. MySQL高级知识(十二)——全局查询日志
  11. 回归的误差服从正态分布吗_10大机器学习的回归类型,你会如何选择?
  12. C++之boost库报错:note: in expansion of macro BOOST_MPL_ASSERT_NOT
  13. python中的fft带通滤波器
  14. 力软敏捷开发框架源码7.0.6解析
  15. 管理运筹学教程_期末复习_总结笔记
  16. cisco模拟器无线路由器
  17. 龙果学院mysql分布式集群代码_MySQL分布式集群搭建
  18. VxWorks的漏洞分析与解决方案
  19. Oracle中的next_day(date,char)
  20. 世界上到处都是有才华的穷人

热门文章

  1. 磁珠 符号_FB是磁珠的符号 | 学步园
  2. 财富杂志推荐的75本必读书
  3. 03. Excel_公式
  4. java论文word_word 论文 排版 适用于 word2016
  5. win11开机数字小键盘失灵不能使用问题
  6. 无法访问 文件目录损坏且无法读取
  7. 一文搞懂如何使用STM32驱动直流电机(普通PWM输出和L298N、高级定时器输出带死区双通道互补PWM和IR2110S及自举电路、H桥电路和电机正反转)
  8. 禁止微信中长按出现 复制文本和在浏览器中打开
  9. 学术会议论文查重吗_会议论文查重吗
  10. 小程序配置px2rem