最近团队在接入微信支付,APP和JSAPI的接口都需要填写一个notify_url回调地址,但是坑爹的官方文档并没有找到JSAPI模式的java版的demo,所以不得不自己看文档写了一个接受微信异步通知的页面,并做相应的业务处理。直接上代码:

<%@page import="com.shop.thread.WXPayFinishThread"%>
<%@page import="com.shop.util.XmlUtil"%>
<%@page import="net.sf.json.JSONObject"%>
<%@page import="java.io.*"%>
<%
/* *
功能:微信支付服务器异步通知页面
作者:李小拐
日期:2016年6月22日20:20:44
说明:
以下代码只是自己的样例代码,非官方,你可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
该代码仅供学习和研究微信接口使用,只是提供一个参考。
* */
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%
//http://101.201.38.47/egx/wxpay_notify_url.jsp
System.out.println("----进入到了该页面---");
BufferedReader reader = request.getReader();
String line = "";
StringBuffer inputString = new StringBuffer();
try{
while ((line = reader.readLine()) != null) {
inputString.append(line);
}
request.getReader().close();
System.out.println("----接收到的报文---"+inputString.toString());
JSONObject json=XmlUtil.XmlToJson(inputString.toString());
//String appid=json.get("appid")+"";
//String mch_id=json.get("mch_id")+"";
if(json.getString("return_code").equals("SUCCESS")){
if(json.getString("result_code").equals("SUCCESS")){
String transaction_id=json.get("transaction_id")+"";//微信支付订单号
String out_trade_no=json.get("out_trade_no")+"";//商户订单号
String openid=json.get("openid")+"";
String trade_type=json.get("trade_type")+"";
//接下来是做自己的业务处理
//开一个线程,更新订单状态
WXPayFinishThread wxp=new WXPayFinishThread(openid,transaction_id,out_trade_no,trade_type);
wxp.start();
}
}
//告诉微信服务器,我收到信息了,不要在调用回调action了
response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
System.out.println("----结束---"+inputString.toString());
}catch(Exception e){
e.printStackTrace();
}
%>

以上代码只处理了SUCCESS的情况,FAIL的情况请自行处理。。。

转载于:https://www.cnblogs.com/jpfss/p/9844321.html

java做微信支付notify_url异步通知服务端的写法相关推荐

  1. Java支付宝APP支付-验证异步通知消息

    上一章已经讲述了支付宝如何生成支付订单,这一章讲述一下支付宝生成订单之后,异步通知接口的开发. 这里先讲一下啥叫支付宝异步通知:对于App支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址 ...

  2. java微信支付异步通知_Java中微信支付退款异步通知解码

    微信所有的支付结果都是加密处理的,他和订单支付成功的异步通知不一样. 他的基本返回是: SUCCESS 我们需要对req_info解码才能看到退款的明文 解码后会得到明文: 解密步骤如下: (1)对加 ...

  3. java对接微信支付收不到支付通知问题(亲身实践)

    问题描述: 用java对接微信支付时,统一下单接口正常.但是用户扫码付款成功后,设置用于回调的notify_url对应的接口并没有收到请求(这个url测试过,是正常的且外网能访问的). 由于官方文档没 ...

  4. 微信开发(一):用JSAPI做微信支付+微信卡包(代金券)

    做微信支付前期准备: 1,服务好开通微信支付. 2,公众账号ID:AppId. 3,公众账号密钥:AppSecret. 4,微信支付密钥:Key. 第一步:获取用户信息并跳转到需要微信支付的页面 pu ...

  5. java集成微信支付接口(微信V3版)

    吐槽下: 经常有人问我,你不是在某软件公司么?我听说大公司都是JAVA,对吗? 我只想回答,那是网上流传的骗人的传说,据我所知公司开发组大部分都是C#,少部分用JAVA. 这不,官方提供那个Demo就 ...

  6. java集成微信支付(完整流程)

    java集成微信支付(完整流程) 1.申请微信支付能力 * 要想使用微信支付能力,不管是app支付.公众号支付.h5支付等支付方式都需要先在微信商户平台申请开通支付能力.* 申请开通支付能力的资料有公 ...

  7. 后端---最全最简单细致的Java接入微信支付接口(Native接入)

    首先,我简单总结一下这几天搞微信支付和支付宝支付接口的体会,通过这几天的动手实操,加强了自己对SSM框架的认识,以及对业务逻辑的思路,明白了许多以前不懂的许多空白. 做支付宝接口的接入完全可以按照支付 ...

  8. Java对接微信支付(完整全流程)

    Java对接微信支付及支付回调通知的全流程 一.所用框架.对接微信支付我们技术组用的是payment框架,因为该框架已整合springboot因此很方便快捷 <dependency>< ...

  9. PHP支付宝支付事务,php实现支付宝app支付和异步通知的代码实例

    本篇文章给大家分享的内容是关于php实现支付宝app支付和异步通知的代码实例,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. 之前写过支付宝app支付的支付的后台代码,现在来说一下异步通知 ...

  10. 微信支付通知 php,微信支付开发交易通知实例

    一.交易通知 用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果.商户可以使用notify_url的通知结果进行个性化页面的展示. 对后台通知交互时,如果微信收到 ...

最新文章

  1. 【决战西二旗】|Redis面试热点之底层实现篇
  2. DFA确定性有穷自动机及其化简
  3. 从零开始学PowerShell(1)初见基础命令
  4. lisp求面与面的差集_Lisp 入门
  5. pytorch-分类任务训练loss不变
  6. PyTorch:Encoder-RNN|LSTM|GRU
  7. jQuery—$ is not a function
  8. Iconfont阿里矢量图库结合css3属性font-face的使用
  9. 路网自动构建路段拓扑
  10. android,java知识点总结 (二)
  11. Machine Learning读书会,面试算法讲座,创业活动,算法班(15年6月)
  12. JSP前三章测试改错
  13. matlab 截断共轭梯度法,最优化作业 共轭梯度法 matlab代码
  14. 如何下载腾讯课堂网页版的历史回放(电脑端)大多网页上的视频均可下载
  15. logistic回归分析优点_机器学习实战项目-Logistic回归
  16. PostgreSQL之外键约束
  17. 【Android Compose】实现宜家 双联列表
  18. 京东之鉴:兄弟是兄弟,员工是员工!-千氪
  19. BGA锡球选择与PITCH的关系
  20. python 英语词典_使用Python的英语词典应用程序

热门文章

  1. NameNode格式化——组件恢复,数据丢失
  2. 猫哥教你写爬虫 044--模拟浏览器-作业
  3. android 支付宝工具类,Android app第三方支付宝支付接入教程
  4. 中柏平板u盘启动_中柏笔记本一键U盘重装系统教程图解
  5. 国际音标 英式音标 美式音标
  6. grunt_从Grunt测试Grunt插件
  7. RPA案例 | 电商使用超自动化平台提升运营精细化
  8. 公司如何使用开源软件
  9. java地狱门方块,我的世界如何制作一个独特的“地狱门”? 赶快放弃你的方盒子吧...
  10. 从前慢-深入理解JVM-篇章1