|
本帖最后由 gzh268 于 2018-8-26 22:54 编辑
我是小白,弄了一天了,还是没搞明白,求大神们赐教啊!急急急!先谢谢了!
private static void doNotify(HttpServletRequest req, HttpServletResponse resp) throws IOException {
System.out.println("进入回调.................................");
resp.setContentType("text/xml;charset=utf-8");
resp.setCharacterEncoding("utf-8");
String resultCode = req.getParameter("return_code");
System.out.println("进入回调."+resultCode);
if("SUCCESS".equals(resultCode)){
String result_code = req.getParameter("result_code");
if(result_code.equals("FAIL")){
String err_code = req.getParameter("err_code");
String err_code_des = req.getParameter("err_code_des");
String out_trade_no = req.getParameter("out_trade_no");
log.info("有一个交易失败["+err_code+"]:" + err_code_des + "out_trade_no:" + out_trade_no);
}else if(result_code.equals("SUCCESS")){
String out_trade_no = req.getParameter("out_trade_no");
String transaction_id=req.getParameter("transaction_id");
/**
TODO 最好数据库里面有单独的订单支付模块
首先检查对应业务数据的状态,判断该通知是否已经处理过,
如果没有处理过再进行处理,如果处理过直接返回结果成功。
在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
*
*/
log.info("订单:" + out_trade_no + ",交易成功");
}
}else if("FAIL".equals(resultCode)){
String returnMsg = req.getParameter("return_msg");
log.error("有失败交易需要关注:" + returnMsg);
}else{
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("不要闹!");
return;
}
resp.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");
}
}
我在后台调用了这个方法:
Model.prototype.testNotifyBtnClick = function(event){
var testData = this.comp("testData");
justep.Baas.sendRequest({
"url" : "/weixin/weixin",
"action" : "notify",
"async" : false,
"params" : {
},
"success" : function(resultCode) {
justep.Util.hint(resultCode);
testData.setValue("fState", resultCode); //我想在这里获取 用户支付结果信息 如果能调到支付成功 和失败 状态参数 就OK了!但不知道上面的JAVA 方法 要获取成功失败code参数或者是他们的相关信息 该怎么写 上边java方法里 哪个是?
}
});
};
|
|