java做微信支付notify_url异步通知服务端的写法
最近团队在接入微信支付,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的情况请自行处理。。。
java做微信支付notify_url异步通知服务端的写法的更多相关文章
- Java 后端微信支付demo
Java 后端微信支付demo 一.导入微信SDK 二.在微信商户平台下载证书放在项目的resources目录下的cert文件夹下(cert文件夹需要自己建) 三.实现微信的WXPayConfig接口 ...
- java实现微信支付
java实现微信支付 package com.hk.wx.pay.service.impl; @Service public class PayServiceImpl implements PaySe ...
- Java实现UDP之Echo客户端和服务端
Java实现UDP之Echo客户端和服务端 代码内容 采用UDP协议编写服务器端代码(端口任意) 编写客户机的代码访问该端口 客户机按行输入 服务器将收到的字符流和接收到的时间输出在服务器consol ...
- Java实现TCP之Echo客户端和服务端
Java实现TCP之Echo客户端和服务端 代码内容 采用TCP协议编写服务器端代码(端口任意) 编写客户机的代码访问该端口 客户机按行输入 服务器将收到的字符流和接收到的时间输出在服务器consol ...
- MSDN上的异步socket 服务端例子
MSDN上的异步socket 服务端例子 2006-11-22 17:12:01| 分类: 代码学习 | 标签: |字号大中小 订阅 Imports SystemImports Syste ...
- 支付(异步通知notify_url 与 同步通知return_url的区别)
同步通知和异步通知发送的数据没有本质的区别:同步通知有2个作用:第一是从支付宝的页面上返回自己的网站继续后续操作:第二是携带支付状态的get参数:让自己的网站用于验证: 同步通知后:还需要异步通知主要 ...
- 微信支付没有结果通知,notify_url参数的接口没有收到微信支付结果通知
在微信支付统一下单的时候需要填一个notify_url参数用于处理微信支付结果通知 但是,有时候我们发现我们设置的这个接口收不到微信请求.原因有一下几个,大家一一对照,也欢迎补充. 1. url是否可 ...
- java之微信支付通知
微信支付,是现在大多数平台都需要接入的一个支付方式,没办法,谁让现在的用户都习惯了这种消费方式呢 我今天只说说微信支付通知,我们后台怎么接收通知,并把我们的订单的状态改为已支付, 至于为什么不说支付的 ...
- JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI)
写这篇文章的目的有2个,一是自己的项目刚开发完微信支付功能,趁热回个炉温习一下,二也是帮助像我这样对微信支付不熟悉,反复看了多天文档还是一知半解,原理都没摸清,更不要说实现了.本以为网上的微信开发教程 ...
随机推荐
- 《从零開始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式
原创文章,欢迎转载.转载请注明:关东升的博客 什么是设计模式.设计模式是在特定场景下对特定问题的解决方式.这些解决方式是经过重复论证和測试总结出来的. 实际上.除了软件设计,设计模式也被广泛应用于其它 ...
- js匿名函数(变量加括号就是函数)
js匿名函数(变量加括号就是函数) 一.总结 变量加括号就是函数,而函数的括号是用来传参的 1.类比:以正常函数去想匿名函数,匿名函数比正常函数只是少了函数名,本质还是一样,该怎么传参还是怎么传参,小 ...
- 开发板 视频04_05 ubuntu的联网及基本设置
4g内存 如果电脑有两g,只能给1.5g 处理器可以根据实际选 usb3.0 或者 2.0 联网模式:: 桥接模式 启动式连接,,,,网是不固定的 仅主机模式,主机和虚拟机在一个网络 第三种联网,自定 ...
- 8.4 Android灯光系统_源码分析_电池灯
电池灯的Java代码在batteryservice.java中 电池的状态电量等信息由驱动获得,但驱动不会主动做这些事情,因此肯定有个App调用驱动程序读取电池信息,称这个App为A应用. 还有个Ap ...
- 2、应用程序及驱动-poll和select使用说明
1.poll机制(如果中断机制出问题了,poll机制是对中断机制的补充,比如等一个小孩,如果小孩生病了,因此隔一段时间应该去找他) poll机制就是给定一段时间,在这一段时间内程序处于睡眠状态一直等待 ...
- MFC切换图片防止闪烁
处理WM_ERASEBKGND消息,在消息处理函数中return TRUE;
- win32程序如何改变字体大小颜色
//设定文字大小和颜色 LOGFONT logfont; //改变输出字体 ZeroMemory(&logfont, sizeof(LOGFONT)); logfont.lfCharSet = ...
- [Angular] Alternative Themes - Learn the Host-Context Selector
To add alernative theme, we can use :host-context() selector from Angular. //au-fa-input-red-theme.c ...
- Unity中做放大镜 效果
孙广东 2015.8.16 事实上和 小地图都几乎相同了. 还是要借助 还有一个相机 目的: 这篇文章的主要目的是 要给你一个想法 怎样做放大境效果 . 在unity中能够简单的实现放大镜效果啊 ...
- linux下如何获取每个线程的CPU占用率
啥也不说,直接上脚本: root@Storage:/mnt/mtd# cat cpu.sh #!/bin/sh while truedo ps -H -eo user,pid,ppid, ...