package com.java214.fenxiao.action; import com.java214.fenxiao.entities.Config; import com.java214.fenxiao.entities.Financial; import com.java214.fenxiao.entities.Orders; import com.java214.fenxiao.entities.Recharge; import com.java214.fenxiao.entities.User; import com.java214.fenxiao.pay.alipay.AlipayConfig; import com.java214.fenxiao.pay.alipay.AlipayNotify; import com.java214.fenxiao.pay.alipay.AlipaySubmit; import com.java214.fenxiao.service.IConfigService; import com.java214.fenxiao.service.IFinancialService; import com.java214.fenxiao.service.IOrdersService; import com.java214.fenxiao.service.IRechargeService; import com.java214.fenxiao.service.IUserService; import java.io.PrintWriter; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Random; import java.util.Set; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; @Controller("alipayAction") @Scope("prototype") public class AlipayAction extends BaseAction { private static final long serialVersionUID = 1L; @Resource(name = "ordersService") private IOrdersService<Orders> ordersService; @Resource(name = "userService") private IUserService<User> userService; private Orders orders; private String ftlFileName; @Resource(name = "configService") private IConfigService<Config> configService; @Resource(name = "financialService") private IFinancialService<Financial> financialService; @Resource(name = "rechargeService") private IRechargeService<Recharge> rechargeService; public String alipayApi() throws Exception { String payment_type = "1"; String notify_url = this.request.getScheme() + "://" + this.request.getServerName() + ":" + this.request.getServerPort() + this.request.getContextPath() + "/" + "notifyUrl"; String return_url = this.request.getScheme() + "://" + this.request.getServerName() + ":" + this.request.getServerPort() + this.request.getContextPath() + "/" + "returnUrl"; Random random = new Random(); int n = random.nextInt(9999); n += 10000; String out_trade_no = "" + System.currentTimeMillis() + n ; String subject = out_trade_no; String money = this.request.getParameter("money"); String body = out_trade_no; String show_url = this.request.getScheme() + "://" + this.request.getServerName() + ":" + this.request.getServerPort() + this.request.getContextPath() + "/"; String anti_phishing_key = ""; String exter_invoke_ip = ""; String enable_paymethod = this.request.getParameter("enable_paymethod"); Config findConfig = (Config) this.configService.findById(Config.class, 1); Map sParaTemp = new HashMap(); sParaTemp.put("service", "create_direct_pay_by_user"); sParaTemp.put("partner", findConfig.getAlipayPartner()); sParaTemp.put("optEmail", findConfig.getAlipaySellerEmail()); sParaTemp.put("_input_charset", AlipayConfig.input_charset); sParaTemp.put("payment_type", payment_type); sParaTemp.put("notify_url", notify_url); sParaTemp.put("return_url", return_url); sParaTemp.put("out_trade_no", out_trade_no); sParaTemp.put("subject", subject); sParaTemp.put("total_fee", Double.parseDouble(money)); sParaTemp.put("body", body); sParaTemp.put("show_url", show_url); sParaTemp.put("anti_phishing_key", anti_phishing_key); sParaTemp.put("exter_invoke_ip", exter_invoke_ip); sParaTemp.put("enable_paymethod", "debitCardExpress"); String sHtmlText = AlipaySubmit.buildRequest(sParaTemp, "get", "确认", findConfig.getAlipayKey()); HttpSession session = this.request.getSession(); User loginUser = (User) session.getAttribute("loginUser"); Recharge recharge = new Recharge(); recharge.setNo(out_trade_no); recharge.setMoney(Double.valueOf(Double.parseDouble(money))); recharge.setUser(loginUser); recharge.setStatus(Integer.valueOf(0)); recharge.setCreateDate(new Date()); this.rechargeService.saveOrUpdate(recharge); PrintWriter out = this.response.getWriter(); out.println(sHtmlText); out.flush(); out.close(); return null; } public String notifyUrl() throws Exception { PrintWriter out = this.response.getWriter(); Map params = new HashMap(); Map requestParams = this.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 = valueStr + values[i] + ","; } params.put(name, valueStr); } String out_trade_no = new String(this.request.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8"); String trade_no = new String(this.request.getParameter("trade_no").getBytes("ISO-8859-1"), "UTF-8"); String trade_status = new String(this.request.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8"); Config findConfig = (Config) this.configService.findById(Config.class, 1); if (AlipayNotify.verify(params, findConfig.getAlipayKey())) { if (trade_status.equals("TRADE_FINISHED")) { Recharge findRecharge = this.rechargeService.findByNo(out_trade_no); if (findRecharge.getStatus().intValue() == 0) { findRecharge.setStatus(Integer.valueOf(1)); this.rechargeService.saveOrUpdate(findRecharge); User findUser = (User) this.userService.findById(User.class, findRecharge.getUser().getId().intValue()); findUser.setBalance(Double.valueOf(findUser.getBalance().doubleValue() + findRecharge.getMoney().doubleValue())); this.userService.saveOrUpdate(findUser); } } else if (trade_status.equals("TRADE_SUCCESS")) { Recharge findRecharge = this.rechargeService.findByNo(out_trade_no); if (findRecharge.getStatus().intValue() == 0) { findRecharge.setStatus(Integer.valueOf(1)); this.rechargeService.saveOrUpdate(findRecharge); User findUser = (User) this.userService.findById(User.class, findRecharge.getUser().getId().intValue()); findUser.setBalance(Double.valueOf(findUser.getBalance().doubleValue() + findRecharge.getMoney().doubleValue())); this.userService.saveOrUpdate(findUser); } } out.println("success"); } else { out.println("fail"); } out.flush(); out.close(); return null; } public String returnUrl() throws Exception { PrintWriter out = this.response.getWriter(); Map params = new HashMap(); Map requestParams = this.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 = valueStr + values[i] + ","; } valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); params.put(name, valueStr); } String out_trade_no = new String(this.request.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8"); String trade_status = new String(this.request.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8"); Config findConfig = (Config) this.configService.findById(Config.class, 1); boolean verify_result = AlipayNotify.verify(params, findConfig.getAlipayKey()); if (verify_result) { Recharge findRecharge = this.rechargeService.findByNo(out_trade_no); if ((trade_status.equals("TRADE_FINISHED")) || (trade_status.equals("TRADE_SUCCESS"))) { if (findRecharge.getStatus().intValue() == 0) { findRecharge.setStatus(Integer.valueOf(1)); this.rechargeService.saveOrUpdate(findRecharge); User findUser = (User) this.userService.findById(User.class, findRecharge.getUser().getId().intValue()); findUser.setBalance(Double.valueOf(findUser.getBalance().doubleValue() + findRecharge.getMoney().doubleValue())); this.userService.saveOrUpdate(findUser); } } out.println("<br>交易成功!<br>订单号:" + out_trade_no + "<br>支付金额:" + findRecharge.getMoney()); } else { out.println("验证失败"); } out.flush(); out.close(); return null; } public Orders getOrders() { return this.orders; } public void setOrders(Orders orders) { this.orders = orders; } public String getFtlFileName() { return this.ftlFileName; } public void setFtlFileName(String ftlFileName) { this.ftlFileName = ftlFileName; } } /* * Location: D:\360��ȫ���������\WeFenxiao_A5\WeFenxiao_V1.0.1\WEB-INF\classes\ * Qualified Name: com.java214.fenxiao.action.AlipayAction JD-Core Version: 0.6.0 */
最近下载更多
顾北城 LV12
3月24日
zhang4xin LV15
2022年1月4日
一样的 LV2
2021年9月10日
912299793 LV21
2021年6月28日
aaa最代码 LV14
2021年3月4日
luodanqing LV1
2021年1月26日
zhouzhiyi LV5
2020年10月30日
xingxing1234 LV10
2020年7月31日
samdy2019 LV3
2020年7月24日
天爙搞劫火 LV3
2020年7月4日
最近浏览更多
顾北城 LV12
3月24日
要保持微笑 LV4
1月5日
ljt289917726 LV3
2023年11月15日
Sean_admin LV7
2023年8月28日
limin123 LV6
2023年6月25日
zenghang188 LV12
2023年3月3日
adminadminsqwqe LV7
2023年2月13日
263648 LV7
2022年12月26日
gch666 LV6
2022年12月22日
abcdljw LV20
2022年12月7日