• 申报接口
//这个类请转至:https://blog.csdn.net/qq_40506288/article/details/110918650
@Autowired
private MyWxPayConfig myWxPayConfig;public Result<Object> wechatDeclareRequest(String id) {String xmlStr = null;String errCodeDes = null;try {//PayDeclaration 给自己自定义的类PayDeclaration payDeclaration = baseMapper.selectById(id);if (null == payDeclaration) {return Result.error("支付单不存在");}if (null == payDeclaration.getTransactionId()) {return Result.error("数据异常【微信订单号为空】");}if (null == payDeclaration.getOutTradeNo()) {return Result.error("数据异常【商户订单号为空】");}//微信报关数据设置String wechatDeclareValue = wechatDeclareValue(payDeclaration);CloseableHttpClient client = HttpClientBuilder.create().build();HttpPost post = new HttpPost(PayConfig.url);post.setEntity(new StringEntity(wechatDeclareValue));HttpResponse response = client.execute(post);HttpEntity entity = response.getEntity();//微信报关返回的xml字符串xmlStr = EntityUtils.toString(entity);//微信配置信息初始化,微信SDK提供的,地址:https://pay.weixin.qq.com/wiki/doc/api/external/jsapi.php?chapter=11_1WXPay wxPay = new WXPay(myWxPayConfig);//xml格式转map,并对sign签名认证,认证失败会返回异常信息,如果不需要签名认证可以忽略这个步骤,自行处理XML,上一行代码微信配置初始化也可以忽略掉Map<String, String> map = wxPay.processResponseXml(xmlStr);//异常错误信息errCodeDes = map.get("err_code_des");String returnCode = map.get("return_code");String resultCode = map.get("result_code");if (!returnCode.equals("SUCCESS") || !resultCode.equals("SUCCESS")) {return Result.error("申报失败【" + errCodeDes + "】");}logger.info(JSONUtil.parseFromMap(map).toString());return Result.ok("申报成功");} catch (Exception e) {e.printStackTrace();//申报记录,失败return Result.error("申报失败【" + errCodeDes + "】");}

}

  • 申报参数设置
    public String wechatDeclareValue(PayDeclaration payDeclaration) throws Exception {//封装签名字段Map<String, String> params = new TreeMap<String, String>();params.put("appid", payDeclaration.getAppid());params.put("customs", payDeclaration.getCustoms());params.put("mch_customs_no", payDeclaration.getMerchantCustomsNo());params.put("mch_id", payDeclaration.getMchid());params.put("out_trade_no", payDeclaration.getOutTradeNo());params.put("transaction_id", payDeclaration.getTransactionId());//支付人的信息//params.put("cert_id", payDeclaration.getCertId());//params.put("cert_type", payDeclaration.getCertType());//params.put("name", payDeclaration.getName());//如果是拆单才需要传递下面的几个参数//params.put("order_fee", payDeclaration.getOrderFee().toString());//params.put("product_fee", payDeclaration.getProductFee().toString());//params.put("transport_fee", null != payDeclaration.getTransportFee() ? payDeclaration.getTransportFee().toString() : "0");//params.put("fee_type", payDeclaration.getFeeType());//params.put("sub_order_no", payDeclaration.getSubOrderNo());//微信的SDK方法return WXPayUtil.generateSignedXml(params, PayConfig.apiSecretKey);}

java 微信报关 V2相关推荐

  1. java 微信报关_微信开放平台,_请求微信报关接口返回的数据,微信开放平台 - phpStudy...

    请求微信报关接口返回的数据 请求微信报关 接口错误 552E051CB6F4DBC6029B8218DBD5A52A gh_4dbf09a0a18e 1342661701 20160825113538 ...

  2. java 对比两个表的字段的差异_Joolun小程序商城 2.2.2版本上线了——Java微信快速开发平台...

    Joolun是一款基于spring-boot的微信快速开发平台,目前拥有公众号基础版和小程序商城版两个版本.Joolun采用目前流行的前后端分离技术所写,是一款高效.易用的java微信开发框架平台,二 ...

  3. 慕课网_《Java微信公众号开发进阶》学习总结

    时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:http://img.mukewang.com/down/... 学习 ...

  4. java微信公众号开发token验证失败的问题及解决办法

    java微信公众号开发token验证失败的问题及解决办法 参考文章: (1)java微信公众号开发token验证失败的问题及解决办法 (2)https://www.cnblogs.com/beardu ...

  5. 捷微jeewx , 免费开源(java)微信公众账号管家系统发布

    JeeWx, 微信管家平台,简称"捷微". 捷微是一款免费开源的JAVA微信公众账号开发平台.   平台介绍: 一.捷微Jeewx简介 Jeewx是一个开源.高效.敏捷的微信开发平 ...

  6. java 微信退款接口_java版微信和支付宝退款接口

    本文实例为大家分享了java微信退款接口和支付宝退款接口的具体代码,供大家参考,具体内容如下 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可: /** ...

  7. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

  8. Java微信订单查询

    版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8262004 ...

  9. java微信支付代码_Java微信支付之服务号支付代码示例

    Java微信支付之服务号支付实现,网上的java微信支付sdk和Demo基本上是水的,看着头疼所以我决心自己开始写Java微信支付之公众号支付,多的不说见下面源码,为了方便使用我分别用了两个Servl ...

最新文章

  1. php内核探索方法与资源
  2. Ubuntu Dapper 提速脚本
  3. JavaScript快速入门-ECMAScript本地对象(RexExp)
  4. Plasma链0x1的构造
  5. 【C++】__gcd(x,y)函数
  6. JavaSE项目之聊天室swing版
  7. Django模板层:DTL模板渲染-变量
  8. 最大的连续子段和的O(n)解法
  9. SDK里报错[NSConcreteMutableData wbsdk_base64EncodedString]
  10. 在bash中,如何检查字符串是否以某个值开头?
  11. 2018/2/28 省选模拟赛 40分
  12. 数据库读写分离下的数据同步解决方案
  13. 解决报错:SSL certificate problem: certificate has expired
  14. 给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手
  15. 毕业设计总结(惯性导航)
  16. 扇贝编程python无法退款_扇贝编程python学习笔记-基础篇1
  17. 使用JavaScript和OpenJSCAD创建用于3D打印的精确3D模型
  18. 小学学计算机应该学什么礼物,小学毕业礼物排行榜 运动学习两不耽误
  19. 【LaTex】LaTex 极简安装教程
  20. INCA官方手册阅读记录

热门文章

  1. 华为机试java_华为java机试面试题目大全
  2. 数据中台建设(规划篇)
  3. 靠云业务独撑收入增长大梁,微软仍然被高估?
  4. 算法之美——求两直线交点(三维叉积)——求四边形面积(二维叉积)
  5. 渝北统景碑口规划开发_统景风景区旅游镇总体规划(2011—2030)说明书
  6. [附源码]Python计算机毕业设计SSM旅行组团服务管理系统(程序+LW)
  7. jQuery-链接api实现星座运势和手机号归属地查询
  8. 1035神奇的数字9
  9. 3年前端入职健海科技(数疗领域方向),试用期总结
  10. P1941 [NOIP2014 提高组] 飞扬的小鸟——解题报告