From 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 26 四月 2024 18:02:17 +0800 Subject: [PATCH] 唯品会链接解析升级 --- fanli/src/main/java/com/yeshi/fanli/controller/wxpay/WXPayController.java | 232 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 116 insertions(+), 116 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxpay/WXPayController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxpay/WXPayController.java index 27e1d22..bcf33f7 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/wxpay/WXPayController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxpay/WXPayController.java @@ -1,116 +1,116 @@ -package com.yeshi.fanli.controller.wxpay; - -import java.math.BigDecimal; -import java.net.URLEncoder; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; -import org.yeshi.utils.HttpUtil; -import org.yeshi.utils.wx.WXUtil; - -import com.yeshi.fanli.util.StringUtil; - -import net.sf.json.JSONObject; - -@Controller -@RequestMapping("pay") -public class WXPayController { - // 鏉挎牀蹇渷 - private WXAPPInfo app = new WXAPPInfo("wxa99686bb65a9f466", "57390718ddedaa1591f6876cdcf96f43", "1520950211", - "XYJkJ2018FAfaodCCx899mLl138rfGVd"); - - @RequestMapping("login") - public String login() { - return "wxpay/login"; - } - - @RequestMapping("loginCallBack") - public void loginCallBack(String code, HttpServletRequest request, HttpServletResponse response) { - System.out.println("code:" + code); - String url = String.format( - "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", - app.getAppId(), app.getAppSecret(), code); - String result = HttpUtil.get(url); - System.out.println("result:" + result); - JSONObject json = JSONObject.fromObject(result); - String openId = json.optString("openid"); - String orderNo = System.currentTimeMillis() + ""; - - double d = 0.1 + 0.5 * Math.random(); - BigDecimal money = new BigDecimal((int) (d * 100)).divide(new BigDecimal(100)); - Map<String, String> resultMap = produceOrder(orderNo, money, openId, "鏉挎牀蹇渷鏀粯", app); - if (resultMap != null) { - System.out.println("缁熶竴涓嬪崟鎴愬姛:" + resultMap.get("prepay_id")); - Map<String, String> payParams = new HashMap<>(); - payParams.put("appId", app.getAppId()); - payParams.put("timeStamp", System.currentTimeMillis() / 1000 + ""); - payParams.put("nonceStr", StringUtil.getRandomCode(32)); - payParams.put("package", "prepay_id=" + resultMap.get("prepay_id")); - payParams.put("signType", "MD5"); - payParams.put("paySign", WXUtil.getSignMD5(payParams, app.getMchKey())); - JSONObject jaon = new JSONObject(); - for (Iterator<String> its = payParams.keySet().iterator(); its.hasNext();) { - String key = its.next(); - jaon.put(key, payParams.get(key)); - } - - try { - response.sendRedirect("pay?data=" + URLEncoder.encode(jaon.toString(), "UTF-8")); - } catch (Exception e) { - } - } - } - - @RequestMapping("pay") - public ModelAndView pay(String data) { - JSONObject jsonObject = JSONObject.fromObject(data); - ModelAndView modelAndView = new ModelAndView("wxpay/pay"); - for (Iterator<String> its = jsonObject.keySet().iterator(); its.hasNext();) { - String key = its.next(); - modelAndView.addObject(key, jsonObject.optString(key)); - } - return modelAndView; - } - - @RequestMapping("test") - public ModelAndView test() { - ModelAndView modelAndView = new ModelAndView("test"); - WXAPPInfo wxappInfo = new WXAPPInfo(); - wxappInfo.setAppId("appId"); - modelAndView.addObject(wxappInfo); - // modelAndView.addObject("test", 123123); - return modelAndView; - } - - private static Map<String, String> produceOrder(String orderNo, BigDecimal fee, String openId, String body, - WXAPPInfo info) { - Map<String, String> map = new HashMap<String, String>(); - map.put("appid", info.getAppId()); - map.put("mch_id", info.getMchId()); - map.put("nonce_str", StringUtil.getRandomCode(32)); - map.put("body", body); - map.put("out_trade_no", orderNo); - map.put("total_fee", "" + fee.multiply(new BigDecimal(100)).intValue()); - map.put("spbill_create_ip", "119.85.112.210"); - map.put("notify_url", "https://banli.xiaoxiangyingji.com/pay/paySuccess"); - map.put("trade_type", "JSAPI"); - map.put("openid", openId); - map.put("sign", WXUtil.getSignMD5(map, info.getMchKey())); - - String entity = WXUtil.loadWXMessage(map); - - String result = HttpUtil.post("https://api.mch.weixin.qq.com/pay/unifiedorder", entity); - System.out.println("缁熶竴涓嬪崟缁撴灉:" + result); - Map<String, String> resultMap = WXUtil.parseXML(result); - - return resultMap; - } - -} +package com.yeshi.fanli.controller.wxpay; + +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; +import org.yeshi.utils.HttpUtil; +import org.yeshi.utils.wx.WXUtil; + +import com.yeshi.fanli.util.StringUtil; + +import net.sf.json.JSONObject; + +@Controller +@RequestMapping("pay") +public class WXPayController { + // 鏉挎牀蹇渷 + private WXAPPInfo app = new WXAPPInfo("wxa99686bb65a9f466", "57390718ddedaa1591f6876cdcf96f43", "1520950211", + "XYJkJ2018FAfaodCCx899mLl138rfGVd"); + + @RequestMapping("login") + public String login() { + return "wxpay/login"; + } + + @RequestMapping("loginCallBack") + public void loginCallBack(String code, HttpServletRequest request, HttpServletResponse response) { + System.out.println("code:" + code); + String url = String.format( + "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", + app.getAppId(), app.getAppSecret(), code); + String result = HttpUtil.get(url); + System.out.println("result:" + result); + JSONObject json = JSONObject.fromObject(result); + String openId = json.optString("openid"); + String orderNo = System.currentTimeMillis() + ""; + + double d = 0.1 + 0.5 * Math.random(); + BigDecimal money = new BigDecimal((int) (d * 100)).divide(new BigDecimal(100)); + Map<String, String> resultMap = produceOrder(orderNo, money, openId, "鏉挎牀蹇渷鏀粯", app); + if (resultMap != null) { + System.out.println("缁熶竴涓嬪崟鎴愬姛:" + resultMap.get("prepay_id")); + Map<String, String> payParams = new HashMap<>(); + payParams.put("appId", app.getAppId()); + payParams.put("timeStamp", System.currentTimeMillis() / 1000 + ""); + payParams.put("nonceStr", StringUtil.getRandomCode(32)); + payParams.put("package", "prepay_id=" + resultMap.get("prepay_id")); + payParams.put("signType", "MD5"); + payParams.put("paySign", WXUtil.getSignMD5(payParams, app.getMchKey())); + JSONObject jaon = new JSONObject(); + for (Iterator<String> its = payParams.keySet().iterator(); its.hasNext();) { + String key = its.next(); + jaon.put(key, payParams.get(key)); + } + + try { + response.sendRedirect("pay?data=" + URLEncoder.encode(jaon.toString(), "UTF-8")); + } catch (Exception e) { + } + } + } + + @RequestMapping("pay") + public ModelAndView pay(String data) { + JSONObject jsonObject = JSONObject.fromObject(data); + ModelAndView modelAndView = new ModelAndView("wxpay/pay"); + for (Iterator<String> its = jsonObject.keySet().iterator(); its.hasNext();) { + String key = its.next(); + modelAndView.addObject(key, jsonObject.optString(key)); + } + return modelAndView; + } + + @RequestMapping("test") + public ModelAndView test() { + ModelAndView modelAndView = new ModelAndView("test"); + WXAPPInfo wxappInfo = new WXAPPInfo(); + wxappInfo.setAppId("appId"); + modelAndView.addObject(wxappInfo); + // modelAndView.addObject("test", 123123); + return modelAndView; + } + + private static Map<String, String> produceOrder(String orderNo, BigDecimal fee, String openId, String body, + WXAPPInfo info) { + Map<String, String> map = new HashMap<String, String>(); + map.put("appid", info.getAppId()); + map.put("mch_id", info.getMchId()); + map.put("nonce_str", StringUtil.getRandomCode(32)); + map.put("body", body); + map.put("out_trade_no", orderNo); + map.put("total_fee", "" + fee.multiply(new BigDecimal(100)).intValue()); + map.put("spbill_create_ip", "119.85.112.210"); + map.put("notify_url", "https://banli.xiaoxiangyingji.com/pay/paySuccess"); + map.put("trade_type", "JSAPI"); + map.put("openid", openId); + map.put("sign", WXUtil.getSignMD5(map, info.getMchKey())); + + String entity = WXUtil.loadWXMessage(map); + + String result = HttpUtil.post("https://api.mch.weixin.qq.com/pay/unifiedorder", entity); + System.out.println("缁熶竴涓嬪崟缁撴灉:" + result); + Map<String, String> resultMap = WXUtil.parseXML(result); + + return resultMap; + } + +} -- Gitblit v1.8.0