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


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

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

java做微信支付notify_url异步通知服务端的写法的更多相关文章

  1. Java 后端微信支付demo

    Java 后端微信支付demo 一.导入微信SDK 二.在微信商户平台下载证书放在项目的resources目录下的cert文件夹下(cert文件夹需要自己建) 三.实现微信的WXPayConfig接口 ...

  2. java实现微信支付

    java实现微信支付 package com.hk.wx.pay.service.impl; @Service public class PayServiceImpl implements PaySe ...

  3. Java实现UDP之Echo客户端和服务端

    Java实现UDP之Echo客户端和服务端 代码内容 采用UDP协议编写服务器端代码(端口任意) 编写客户机的代码访问该端口 客户机按行输入 服务器将收到的字符流和接收到的时间输出在服务器consol ...

  4. Java实现TCP之Echo客户端和服务端

    Java实现TCP之Echo客户端和服务端 代码内容 采用TCP协议编写服务器端代码(端口任意) 编写客户机的代码访问该端口 客户机按行输入 服务器将收到的字符流和接收到的时间输出在服务器consol ...

  5. MSDN上的异步socket 服务端例子

    MSDN上的异步socket 服务端例子 2006-11-22 17:12:01|  分类: 代码学习 |  标签: |字号大中小 订阅     Imports SystemImports Syste ...

  6. 支付(异步通知notify_url 与 同步通知return_url的区别)

    同步通知和异步通知发送的数据没有本质的区别:同步通知有2个作用:第一是从支付宝的页面上返回自己的网站继续后续操作:第二是携带支付状态的get参数:让自己的网站用于验证: 同步通知后:还需要异步通知主要 ...

  7. 微信支付没有结果通知,notify_url参数的接口没有收到微信支付结果通知

    在微信支付统一下单的时候需要填一个notify_url参数用于处理微信支付结果通知 但是,有时候我们发现我们设置的这个接口收不到微信请求.原因有一下几个,大家一一对照,也欢迎补充. 1. url是否可 ...

  8. java之微信支付通知

    微信支付,是现在大多数平台都需要接入的一个支付方式,没办法,谁让现在的用户都习惯了这种消费方式呢 我今天只说说微信支付通知,我们后台怎么接收通知,并把我们的订单的状态改为已支付, 至于为什么不说支付的 ...

  9. JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI)

    写这篇文章的目的有2个,一是自己的项目刚开发完微信支付功能,趁热回个炉温习一下,二也是帮助像我这样对微信支付不熟悉,反复看了多天文档还是一知半解,原理都没摸清,更不要说实现了.本以为网上的微信开发教程 ...

随机推荐

  1. Android 监听软键盘点击回车及换行事件

    mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean ...

  2. PHP回调函数--call_user_func_array

    我这是抄的 感谢 https://www.cnblogs.com/zzl-21086595/p/4547519.html 全局函数的回调 这里的全局函数的意思,是直接使用function定义的函数,它 ...

  3. Mybatis全面详解——下(学习总结)

    原文地址:https://blog.csdn.net/ititii/article/details/79999481 一.Mybatis关联查询映射 这里采用一个案例来进行分析:(下面的案例都是采用M ...

  4. 教你写Http框架(二)——三个样例带你深入理解AsyncTask

    这个标题大家不要奇怪,扯Http框架怎么扯到AsyncTask去了,有两个原因:首先是Http框架除了核心http理论外.其技术实现核心也是线程池 + 模板 + handler,而AsyncTask又 ...

  5. https://github.com/mvf/svn_wfx

    https://github.com/mvf/svn_wfx 2003.net对应的vc是7.0版本.需要更高的. 在哪里可以下载呢 https://www.tjupt.org/没有校外种子 Proj ...

  6. PatentTips - Highly-available OSPF routing protocol

    BACKGROUND OF THE INVENTION FIG. 1A is a simplified block diagram schematically representing a typic ...

  7. Android中的消息机制:Handler消息传递机制 分类: H1_ANDROID 2013-10-27 22:54 1755人阅读 评论(0) 收藏

    参考<疯狂android讲义>第2版3.5 P214 一.背景 出于性能优化考虑,Android的UI操作并不是线程安全的,这意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为 ...

  8. Java Queue的使用

    Queue的成员函数        add        增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常       rem ...

  9. 单选框radio改变事件详解(用的jquery的radio的change事件)

    单选框radio改变事件详解(用的jquery的radio的change事件) 一.总结 1.用的jquery的radio的change事件:当元素的值发生改变时,会发生 change 事件,radi ...

  10. USB 3.0规范中译本 第3章 USB 3.0体系结构概览

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章呈现USB 3.0体系结构和关键概念的概览.USB 3.0与前面版本的USB类似,因为它是线缆总线,支持 ...