diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java index f991dee8..00e3b0d9 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java @@ -1,6 +1,9 @@ package com.ghy.web.controller.pay; import com.alibaba.fastjson.JSONObject; +import com.ghy.common.adapay.AdapayService; +import com.ghy.common.adapay.callback.model.WxLiteExpend; +import com.ghy.common.adapay.callback.reply.WxPubPayCallBack; import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; import com.ghy.common.utils.WxUtils; @@ -15,11 +18,13 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping("/pay/wx") public class WxPayController extends BaseController { + private AdapayService adapayService; + /** * 微信公众号支付. * https://open.weixin.qq.com/connect/oauth2/authorize? * appid=wx404f2439a8c24e15 - * &redirect_uri=http%3A%2F%2Fwww.opsoul.com%2Fwx%2Fopenid + * &redirect_uri=http%3A%2F%2Fwww.opsoul.com%2Fpay%2Fwx%2Fpub * &response_type=code * &scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect * */ @@ -27,17 +32,21 @@ public class WxPayController extends BaseController { @ResponseBody public AjaxResult pubPay(HttpServletRequest request){ String code = request.getParameter("code"); - - String orderId = request.getParameter("orderId"); + //测试时前端不带订单号. +// String orderId = request.getParameter("orderId"); // 查询回订单信息。如果订单不存在,则退出. try { JSONObject wxUser = WxUtils.getOpenid(code); String openId = wxUser.getString("openid"); //调用adapay微信公众号支付. - + WxLiteExpend expend = new WxLiteExpend(); + expend.setOpen_id(openId); + adapayService.wxPubPay(new WxPubPayCallBack(), expend, "wxPay123456" + Math.ceil(Math.random()*100), "1.00", + "测试商品", "测试商品detail", "description"); //拼接消息给前端.前端通过JSAPI调用微信支付 }catch (Exception e){ - + e.printStackTrace(); + logger.error(e.getMessage()); } return AjaxResult.success(); } diff --git a/ghy-admin/src/main/resources/application.yaml b/ghy-admin/src/main/resources/application.yaml index e0b6810e..b0c1a18c 100644 --- a/ghy-admin/src/main/resources/application.yaml +++ b/ghy-admin/src/main/resources/application.yaml @@ -148,8 +148,8 @@ qiniu: mediaUrl: 'http://gqz.opsoul.com/' adapay: - appId: - notifyUrl: - apiKey: - mockApiKey: - rsaPrivateKey: + appId: 'app_01af32e7-6173-414f-88e5-79cae64d5e24' + notifyUrl: 'http://www.opsoul.com/adapay/callback' + apiKey: 'api_live_93a2fb4f-a74a-416f-967d-68557bcde43f' + mockApiKey: 'api_test_88bf2958-583d-41cd-a987-01fe767ff056' + rsaPrivateKey: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxcoRizdqBD3pEYVlJg/BkmNoHA2T/craoCKKh2rjBo3GKmuug6mHi+gesxtiGe6arcNU7Yv20rSySHw/rKpp7pNHivLrV4lHWjIVfV/2OCTpPzAbEoWr2nfx9UhQxru5Jue/fsO6VjPv27sFMXJ8pRmqok+eRDUqjuEEKr74oQwIDAQAB' diff --git a/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java b/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java index 08b3395d..039af5cd 100644 --- a/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java +++ b/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java @@ -12,7 +12,6 @@ import com.huifu.adapay.core.exception.BaseAdaPayException; import com.huifu.adapay.model.Drawcash; import com.huifu.adapay.model.Payment; import com.huifu.adapay.model.Refund; -import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.util.Assert; @@ -23,7 +22,6 @@ import java.util.Map; * @author HH 2022/3/25 */ @Slf4j -@Setter public class AdapayService { AdapayProperties adapayProperties; @@ -68,6 +66,14 @@ public class AdapayService { return pay(callback, PayChannelEnum.ALIPAY_QR.getCode(), expend, orderNo, payAmt, goodsTittle, goodsDesc, description); } + /** + * 微信小程序支付 + */ + public Map wxPubPay(PayCallback callback, WxLiteExpend expend, String orderNo, String payAmt, + String goodsTittle, String goodsDesc, String description) throws BaseAdaPayException { + return pay(callback, PayChannelEnum.WX_PUB.getCode(), expend, orderNo, payAmt, goodsTittle, goodsDesc, description); + } + /** * 微信小程序支付 */ diff --git a/ghy-common/src/main/java/com/ghy/common/adapay/PayChannelEnum.java b/ghy-common/src/main/java/com/ghy/common/adapay/PayChannelEnum.java index dd3189a1..3fdea91a 100644 --- a/ghy-common/src/main/java/com/ghy/common/adapay/PayChannelEnum.java +++ b/ghy-common/src/main/java/com/ghy/common/adapay/PayChannelEnum.java @@ -8,7 +8,8 @@ package com.ghy.common.adapay; public enum PayChannelEnum { ALIPAY_QR("alipay_qr", "支付宝正扫"), - WX_LITE("wx_lite", "wx_lite"); + WX_LITE("wx_lite", "微信小程序"), + WX_PUB("wx_pub", "微信公众号"); private final String code; private final String description; diff --git a/ghy-common/src/main/java/com/ghy/common/adapay/callback/model/Expend.java b/ghy-common/src/main/java/com/ghy/common/adapay/callback/model/Expend.java index 1aaa6e49..35d42572 100644 --- a/ghy-common/src/main/java/com/ghy/common/adapay/callback/model/Expend.java +++ b/ghy-common/src/main/java/com/ghy/common/adapay/callback/model/Expend.java @@ -1,7 +1,14 @@ package com.ghy.common.adapay.callback.model; +import lombok.Data; + /** * @author HH 2022/3/31 */ +@Data public class Expend { + + private String open_id; + + } diff --git a/ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java b/ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java new file mode 100644 index 00000000..e9fba84f --- /dev/null +++ b/ghy-common/src/main/java/com/ghy/common/adapay/callback/reply/WxPubPayCallBack.java @@ -0,0 +1,15 @@ +package com.ghy.common.adapay.callback.reply; + +import com.ghy.common.adapay.callback.PayCallback; +import com.ghy.common.adapay.callback.model.PayReply; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class WxPubPayCallBack implements PayCallback { + + @Override + public void onReply(PayReply reply) { + // 更新工单状态 + log.info("wx pub pay response is : " + reply.toString()); + } +} diff --git a/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java b/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java index 3dff55eb..06c33303 100644 --- a/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java +++ b/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java @@ -277,8 +277,9 @@ public class ShiroConfig LinkedHashMap filterChainDefinitionMap = new LinkedHashMap<>(); //部分接口不需要登陆校验 filterChainDefinitionMap.put("/wx/**", "anon"); - // 对静态资源设置匿名访问 + filterChainDefinitionMap.put("/adapay/**", "anon"); filterChainDefinitionMap.put("/MP_verify_bRFuvYpyQ4WLr0on.txt", "anon"); + // 对静态资源设置匿名访问 filterChainDefinitionMap.put("/favicon.ico**", "anon"); filterChainDefinitionMap.put("/ruoyi.png**", "anon"); filterChainDefinitionMap.put("/html/**", "anon");