微信支付--异步处理支付结果
来源:互联网 发布:谷歌软件开发 编辑:程序博客网 时间:2024/05/13 02:13
package com.ods.wx.web;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.eredlab.g4.rif.web.BaseAction;
import com.ods.wx.util.MessageUtil;
import com.ods.wx.wxpay.ReturnOrders;
public class PayLoginAction extends BaseAction {
@SuppressWarnings("static-access")
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
Map<String, String> map =MessageUtil.parseXml(request);
String jsonObject = JSONObject.fromObject(map).toString();
System.out.println("支付成功后异步返回数据为:"+jsonObject);
if (map.get("result_code").toString().equalsIgnoreCase("SUCCESS")) {
/**
* 根据自己的需要并不是所有的字段都要保存,请结合实际情况
*/
ReturnOrders retOrd = new ReturnOrders();
retOrd.setAppid(map.get("appid"));//商户appid
retOrd.setBank_type(map.get("bank_type"));//银行类型
retOrd.setFee_type(map.get("fee_type"));//货币种类 CNY是人民币
retOrd.setIs_subscribe(map.get("is_subscribe"));//是否关注公众账号
retOrd.setMch_id(map.get("mch_id"));//商户号
retOrd.setNonce_str(map.get("nonce_str"));//随机字符串
retOrd.setOpenid(map.get("openid"));//用户openid
retOrd.setOut_trade_no(map.get("out_trade_no"));//商户订单号
retOrd.setResult_code(map.get("result_code"));//业务结果
retOrd.setReturn_code(map.get("return_code"));//返回状态码
retOrd.setSign(map.get("sign"));//签名
retOrd.setSub_mch_id(map.get("sub_mch_id"));//子商户号
retOrd.setTime_end(map.get("time_end"));//支付完成时间
retOrd.setTotal_fee(map.get("total_fee"));//总金额
retOrd.setTrade_type(map.get("trade_type"));//交易类型
retOrd.setTransaction_id(map.get("transaction_id"));//微信支付订单号
//TODO 对数据库的操作
System.out.println("==============支付异步处理==========");
response.getWriter().write(setXML("SUCCESS", "")); //告诉微信服务器,我收到信息了,不要在调用回调action了
System.out.println("-------------"+setXML("SUCCESS", ""));
}
return mapping.findForward(null);
}
public static String setXML(String return_code, String return_msg) {
return "<xml><return_code><![CDATA[" + return_code
+ "]]></return_code><return_msg><![CDATA[" + return_msg
+ "]]></return_msg></xml>";
}
}
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.eredlab.g4.rif.web.BaseAction;
import com.ods.wx.util.MessageUtil;
import com.ods.wx.wxpay.ReturnOrders;
public class PayLoginAction extends BaseAction {
@SuppressWarnings("static-access")
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
Map<String, String> map =MessageUtil.parseXml(request);
String jsonObject = JSONObject.fromObject(map).toString();
System.out.println("支付成功后异步返回数据为:"+jsonObject);
if (map.get("result_code").toString().equalsIgnoreCase("SUCCESS")) {
/**
* 根据自己的需要并不是所有的字段都要保存,请结合实际情况
*/
ReturnOrders retOrd = new ReturnOrders();
retOrd.setAppid(map.get("appid"));//商户appid
retOrd.setBank_type(map.get("bank_type"));//银行类型
retOrd.setFee_type(map.get("fee_type"));//货币种类 CNY是人民币
retOrd.setIs_subscribe(map.get("is_subscribe"));//是否关注公众账号
retOrd.setMch_id(map.get("mch_id"));//商户号
retOrd.setNonce_str(map.get("nonce_str"));//随机字符串
retOrd.setOpenid(map.get("openid"));//用户openid
retOrd.setOut_trade_no(map.get("out_trade_no"));//商户订单号
retOrd.setResult_code(map.get("result_code"));//业务结果
retOrd.setReturn_code(map.get("return_code"));//返回状态码
retOrd.setSign(map.get("sign"));//签名
retOrd.setSub_mch_id(map.get("sub_mch_id"));//子商户号
retOrd.setTime_end(map.get("time_end"));//支付完成时间
retOrd.setTotal_fee(map.get("total_fee"));//总金额
retOrd.setTrade_type(map.get("trade_type"));//交易类型
retOrd.setTransaction_id(map.get("transaction_id"));//微信支付订单号
//TODO 对数据库的操作
System.out.println("==============支付异步处理==========");
response.getWriter().write(setXML("SUCCESS", "")); //告诉微信服务器,我收到信息了,不要在调用回调action了
System.out.println("-------------"+setXML("SUCCESS", ""));
}
return mapping.findForward(null);
}
public static String setXML(String return_code, String return_msg) {
return "<xml><return_code><![CDATA[" + return_code
+ "]]></return_code><return_msg><![CDATA[" + return_msg
+ "]]></return_msg></xml>";
}
}
0 0
- 微信支付--异步处理支付结果
- 微信支付异步处理支付结果-公众号支付开发-视频教程6
- 微信支付-支付结果通知接收
- 微信支付,异步通知
- 微信支付(java版本)_支付结果通知
- java微信app支付-支付结果通用通知
- 微信支付(java版本)_支付结果通知
- Atitit 微信支付 支付结果通用通知
- 微信公众号支付 (四、支付结果通知)
- 微信,支付宝,支付异步通知验签,notify_url
- 微信支付--返回异步数据封装
- 支付宝、微信异步接口
- 使用notify_url异步处理小程序支付结果
- android微信支付之调起支付和支付结果页面回调
- 微信支付 APP 支付方式的服务器端处理程序
- PHP开发微信支付代码及支付通知处理
- 微信支付 APP 支付方式的服务器端处理程序
- java支付宝和微信app支付(服务端处理)
- Leetcode 223 Rectangle Area 矩形区域面积
- 【Android Training - Multimedia】管理音频播放[Lesson 2 - 管理音频焦点Audio Focus]
- 关于类、方法、变量、语句块的加载顺序
- 对面向对象编程的认识
- LeetCode(235) Lowest Common Ancestor of a Binary Search Tree
- 微信支付--异步处理支付结果
- java.io.IOException: open failed: EINVAL (Invalid argument)
- TCP协议以及套接字方面的总结(1)
- 【SDOI2008】【BZOJ2190】仪仗队
- 加保护
- 战斗
- Hadoop学习笔记Day01
- 豁然开朗,如梦初醒
- 欧几里德算法及其扩展和中国剩余定理(暂时先写到这)