67,513
社区成员
发帖
与我相关
我的任务
分享
@RequestMapping(value = "notify_url", method = RequestMethod.GET)
public void notify_url(HttpServletRequest request) {
String result = AlipayHandle.notify_url(request);
if ("success".equals(result)) {
System.out.println("================111111111111111================");
}
}
在支付流程的时候就能正常返回验证,但是退款就不行,不知道怎么滴,大神求解决
public static void reFund(PrintWriter out, String refund_date, String batch_no, String detail_data) {
String notify_url = "http://127.0.0.1:8080/order/notify_url";
String seller_email = "xxxxx@qq.com";
String batch_num = "1";
//把请求参数打包成数组
Map<String, String> sParaTemp = new HashMap<>();
sParaTemp.put("service", "refund_fastpay_by_platform_pwd");
sParaTemp.put("partner", AlipayConfig.partner);
sParaTemp.put("_input_charset", AlipayConfig.input_charset);
sParaTemp.put("notify_url", notify_url);
sParaTemp.put("seller_email", seller_email);
sParaTemp.put("refund_date", refund_date);
sParaTemp.put("batch_no", batch_no);
sParaTemp.put("batch_num", batch_num);
sParaTemp.put("detail_data", detail_data);
//建立请求
String sHtmlText = RefundSubmit.buildRequest(sParaTemp, "get", "确认");
out.println(sHtmlText);
}
public static String notify_url(HttpServletRequest request) {
//即时到账退款返回
String result = "";
Map<String, String> params = new HashMap<>();
Map requestParams = request.getParameterMap();
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + ",";
}
try {
//乱码解决
valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
params.put(name, valueStr);
}
//获取支付宝的通知返回参数
String batch_no = "";
String success_num = "";
String result_details = "";
try {
batch_no = new String(request.getParameter("batch_no").getBytes("ISO-8859-1"), "UTF-8");
success_num = new String(request.getParameter("success_num").getBytes("ISO-8859-1"), "UTF-8");
result_details = new String(request.getParameter("result_details").getBytes("UTF-8"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (AlipayNotify.verify(params)) {//验证成功
result = "success";
} else {//验证失败
result = "fail";
}
return result;
}