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>";
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。