微信支付

// 微信支付结果回调
// @ResponseBody
@RequestMapping(value = "red_paycallback")
public void fala_paycallback(ServletRequest request, HttpServletResponse response) throws Exception {


System.err.println("----------------------------------------");
String s = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";


response.getWriter().write(s);


// 
InputStream inputStream = request.getInputStream();
if (inputStream != null) {


// StringBuffer sb = new StringBuffer();


// InputStreamReader isr = new InputStreamReader(inputStream,
// "UTF-8");
// BufferedReader br = new BufferedReader(isr);
// String xml = "";
// while ((xml = br.readLine()) != null) {
// sb.append(xml);
// }
// String x = sb.toString(); // 
//
// System.err.println(x);


// 
Map<String, String> map = new HashMap<String, String>();


// 
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
if (document != null) {


// 
Element root = document.getRootElement();


System.err.println(document.getRootElement());
// 
List<Element> elementList = root.elements();


String return_code = "";
String return_msg = "";
String appid = "";
String mch_id = "";
String device_info = "";
String nonce_str = "";
String sign = "";
String sign_type = "";


String result_code = "";
String err_code = "";
String err_code_des = "";
String openid = "";
String is_subscribe = "";
String trade_type = "";
String bank_type = "";
String total_fee = "";


String fee_type = "";
String cash_fee = "";
String cash_fee_type = "";
String transaction_id = "";
String out_trade_no = "";
String attach = "";
String time_end = "";


// 
for (Element e : elementList) {
map.put(e.getName(), e.getText());
System.err.println(e.getName() + "---------" + e.getText());


if ("return_code".equals(e.getName())) {// SUCCESS/FAIL


return_code = e.getText();
}


if ("return_msg".equals(e.getName())) {// 
return_msg = e.getText();
}
if ("appid".equals(e.getName())) {// appid
appid = e.getText();
}
if ("mch_id".equals(e.getName())) {// mch_id
mch_id = e.getText();
}
if ("device_info".equals(e.getName())) {// 
device_info = e.getText();
}


if ("nonce_str".equals(e.getName())) {// 
nonce_str = e.getText();
}


if ("sign".equals(e.getName())) {// 
sign = e.getText();
}
if ("sign_type".equals(e.getName())) {// 
sign_type = e.getText();
}


if ("result_code".equals(e.getName())) {// SUCCESS/FAIL


result_code = e.getText();
}


if ("err_code".equals(e.getName())) {// 
err_code = e.getText();
}
if ("err_code_des".equals(e.getName())) {// 
err_code_des = e.getText();
}
if ("openid".equals(e.getName())) {// 
openid = e.getText();
}
if ("is_subscribe".equals(e.getName())) {// 
is_subscribe = e.getText();
}


if ("trade_type".equals(e.getName())) {// JSAPI
trade_type = e.getText();
}


if ("bank_type".equals(e.getName())) {// 
bank_type = e.getText();
}
if ("total_fee".equals(e.getName())) {// 
total_fee = e.getText();
}


if ("fee_type".equals(e.getName())) {// 


fee_type = e.getText();
}


if ("cash_fee".equals(e.getName())) {// 
cash_fee = e.getText();
}
if ("cash_fee_type".equals(e.getName())) {// 
cash_fee_type = e.getText();
}
if ("transaction_id".equals(e.getName())) {// 
transaction_id = e.getText();
}
if ("out_trade_no".equals(e.getName())) {// 
out_trade_no = e.getText();
}


if ("attach".equals(e.getName())) {// 
attach = e.getText();
}


if ("time_end".equals(e.getName())) {// 
time_end = e.getText();
}


}


// 
inputStream.close();
inputStream = null;


ScanPayCallbackData data = new ScanPayCallbackData();


if (StringUtils.isNotBlank(appid)) {
data.setAppid(appid);
}
if (StringUtils.isNotBlank(attach)) {
data.setAttach(attach);
}


if (StringUtils.isNotBlank(bank_type)) {
data.setBank_type(bank_type);
}


if (StringUtils.isNotBlank(cash_fee)) {
data.setCash_fee(cash_fee);
}


if (StringUtils.isNotBlank(fee_type)) {
data.setFee_type(fee_type);
}
if (StringUtils.isNotBlank(device_info)) {
data.setDevice_info(device_info);
}


if (StringUtils.isNotBlank(err_code_des)) {
data.setErr_code(err_code_des);
}
if (StringUtils.isNotBlank(err_code_des)) {
data.setErr_code_des(err_code_des);
}
if (StringUtils.isNotBlank(cash_fee_type)) {
data.setFee_type(cash_fee_type);
}


if (StringUtils.isNotBlank(is_subscribe)) {
data.setIs_subscribe(is_subscribe);
}


if (StringUtils.isNotBlank(mch_id)) {
data.setMch_id(mch_id);
}
if (StringUtils.isNotBlank(nonce_str)) {
data.setNonce_str(nonce_str);
}
if (StringUtils.isNotBlank(openid)) {
data.setOpenid(openid);
}
if (StringUtils.isNotBlank(out_trade_no)) {
data.setOut_trade_no(out_trade_no);
}
if (StringUtils.isNotBlank(result_code)) {
data.setResult_code(result_code);
}
if (StringUtils.isNotBlank(return_code)) {
data.setReturn_code(return_code);
}
if (StringUtils.isNotBlank(return_msg)) {
data.setReturn_msg(return_msg);
}
// if (StringUtils.isNotBlank(sign_type)) {
// data.setSign(sign_type);
// }
if (StringUtils.isNotBlank(sign_type)) {
data.setSign_type(sign_type);
}
if (StringUtils.isNotBlank(time_end)) {
data.setTime_end(time_end);
}
if (StringUtils.isNotBlank(total_fee)) {
data.setTotal_fee(total_fee);
}
if (StringUtils.isNotBlank(trade_type)) {
data.setTrade_type(trade_type);
}
if (StringUtils.isNotBlank(transaction_id)) {
data.setTransaction_id(transaction_id);
}


String sign2 = data.getSign_2();
if (StringUtils.isNotBlank(sign)) {
if (sign.equals(sign2)) {
logger.error("成功");
if ("SUCCESS".equals(result_code)) {
//支付成功

ProjectSupport support =  iProjectSupportService.findByOrderno(data.getOut_trade_no());
if (support != null) {
support.setState(1);
iProjectSupportService.save(support);
}



}


} else {
logger.error("支付失败");
logger.error("sign2 = " + sign2);
logger.error("sign = " + sign);
}
}


}
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值