| | |
| | | |
| | | import cn.dreampie.encription.EncriptionKit; |
| | | import cn.hutool.core.codec.Base64; |
| | | import cn.hutool.http.HttpUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; |
| | | import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult; |
| | | import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest; |
| | |
| | | import com.github.binarywang.wxpay.service.WxPayService; |
| | | import com.sandu.common.execption.BusinessException; |
| | | import com.sandu.common.util.IpUtil; |
| | | import com.sandu.ximon.admin.dto.wxquerydto.WxOrderDto; |
| | | import com.sandu.ximon.admin.pay.wxpay.UsrWxPayConfigService; |
| | | import com.sandu.ximon.dao.domain.WxConfigEntity; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | |
| | | private final com.github.binarywang.wxpay.service.WxPayService wxPayService; |
| | | //private final WxPayProperties wxPayProperties; |
| | | // public static final String WECHAT_ORDER_PAY_CALLBACK_URL = "http://49.235.239.118:20012/callback/pay/wechatCallback"; |
| | | public static final String WECHAT_ORDER_PAY_CALLBACK_URL = "http://49.235.239.118:20012/callback/pay/wechatCallback"; |
| | | //微信订单状态查询 |
| | | public static final String WECHAT_ORDER_QUETY_URL = "https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/"; |
| | | public static final String WECHAT_ORDER_QUETY = "?mchid="; |
| | | |
| | | private final UsrWxPayConfigService wxPayConfigService; |
| | | |
| | | |
| | | |
| | | /** |
| | | * app支付 |
| | | * |
| | | * @param body 商品描述 |
| | | * @param orderId 订单id |
| | | * @param |
| | | * @param totalFee 支付金额(分) |
| | | * @return |
| | | */ |
| | | public SortedMap<Object, Object> appPay(String body, String orderSn, int totalFee,Long poleId) { |
| | | public SortedMap<Object, Object> appPay(String body, String orderSn, int totalFee, Long poleId) { |
| | | WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId); |
| | | WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest(); |
| | | wxPayUnifiedOrderRequest.setBody(body); |
| | |
| | | } |
| | | } |
| | | |
| | | /* private String createSign(SortedMap<Object, Object> parameters) { |
| | | StringBuffer sb = new StringBuffer(); |
| | | Set es = parameters.entrySet();// 所有参与传参的参数按照accsii排序(升序) |
| | | for (Object e : es) { |
| | | Map.Entry entry = (Map.Entry) e; |
| | | String k = (String) entry.getKey(); |
| | | Object v = entry.getValue(); |
| | | if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) { |
| | | sb.append(k + "=" + v + "&"); |
| | | /* private String createSign(SortedMap<Object, Object> parameters) { |
| | | StringBuffer sb = new StringBuffer(); |
| | | Set es = parameters.entrySet();// 所有参与传参的参数按照accsii排序(升序) |
| | | for (Object e : es) { |
| | | Map.Entry entry = (Map.Entry) e; |
| | | String k = (String) entry.getKey(); |
| | | Object v = entry.getValue(); |
| | | if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) { |
| | | sb.append(k + "=" + v + "&"); |
| | | } |
| | | } |
| | | sb.append("key=" + wxPayProperties.getMchKey()); |
| | | System.out.println("字符串拼接后是:" + sb.toString()); |
| | | return SecureUtil.md5(sb.toString()).toUpperCase(); |
| | | }*/ |
| | | |
| | | |
| | | /** |
| | | * 微信订单状态查询 |
| | | * @param poleId |
| | | * @param outTradeNo |
| | | * @return |
| | | */ |
| | | public boolean WxOrderQuery(Long poleId,String outTradeNo){ |
| | | WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId); |
| | | if(wxConfig==null){ |
| | | throw new BusinessException("获取微信支付配置失败"); |
| | | } |
| | | sb.append("key=" + wxPayProperties.getMchKey()); |
| | | System.out.println("字符串拼接后是:" + sb.toString()); |
| | | return SecureUtil.md5(sb.toString()).toUpperCase(); |
| | | }*/ |
| | | String s = HttpUtil.get(WECHAT_ORDER_QUETY_URL + outTradeNo + WECHAT_ORDER_QUETY + wxConfig.getMchId());//WxOrderDto |
| | | WxOrderDto wxOrderDto = JSON.parseObject(s, WxOrderDto.class); |
| | | if(("SUCCESS").equals(wxOrderDto.getTrade_state())){ |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * @param parameters |
| | |
| | | return sign; |
| | | } |
| | | |
| | | public WxPayOrderNotifyResult parseOrderNotifyResult(WxPayService wxPayService, String xmlData) { |
| | | public WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) { |
| | | try { |
| | | return wxPayService.parseOrderNotifyResult(xmlData); |
| | | } catch (WxPayException e) { |
| | |
| | | } |
| | | } |
| | | |
| | | public WxPayRefundNotifyResult parseRefundNotifyResult(WxPayService wxPayService, String xmlData) { |
| | | public WxPayRefundNotifyResult parseRefundNotifyResult( String xmlData) { |
| | | try { |
| | | return wxPayService.parseRefundNotifyResult(xmlData); |
| | | } catch (WxPayException e) { |
| | |
| | | * @param callbackUrl |
| | | * @return |
| | | */ |
| | | public boolean refundOrder(WxPayService wxPayService, String orderId, String refundSn, Integer refundFee, String callbackUrl) { |
| | | public boolean refundOrder( String orderId, String refundSn, Integer refundFee, String callbackUrl) { |
| | | WxPayRefundRequest refundRequest = new WxPayRefundRequest(); |
| | | refundRequest.setOutTradeNo(orderId); |
| | | refundRequest.setOutRefundNo(refundSn); |
| | |
| | | /** |
| | | * 生成二维码付款 |
| | | */ |
| | | public String generateQRCodePay(WxPayService wxPayService, String body, |
| | | public String generateQRCodePay( String body, |
| | | String orderId, int totalFee, String callbackUrl) { |
| | | WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest(); |
| | | wxPayUnifiedOrderRequest.setBody(body); |