当前位置:   article > 正文

微信支付学习笔记之调用com.github.binarywang.wxpay.service接口

com.github.binarywang
接口链接:https://github.com/binarywang

使用步骤:

  1. 将HttpServletRequest转成 ip
    1. /**
    2. * 获得请求地址ip
    3. * @param httpservletrequest
    4. * @return
    5. */
    6. public static String getClientIP(HttpServletRequest httpservletrequest) {
    7. if (httpservletrequest == null)
    8. return null;
    9. String s = httpservletrequest.getHeader("X-Forwarded-For");
    10. if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
    11. s = httpservletrequest.getHeader("Proxy-Client-IP");
    12. if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
    13. s = httpservletrequest.getHeader("WL-Proxy-Client-IP");
    14. if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
    15. s = httpservletrequest.getHeader("HTTP_CLIENT_IP");
    16. if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
    17. s = httpservletrequest.getHeader("HTTP_X_FORWARDED_FOR");
    18. if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
    19. s = httpservletrequest.getRemoteAddr();
    20. return s;
    21. }
  2. 封装微信统一下单接口,获取"预支付交易会话标识"返回的结果 WxPayUnifiedOrderResult
    1. public WxPayUnifiedOrderRequest toPayInfo(String clientIp) {
    2. WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
    3. request.setDeviceInfo("WEB");//设备号
    4. request.setBody(this.getProductName());//商品描述
    5. request.setOutTradeNo(this.getOrderNo());//商户订单号
    6. request.setDetail(this.getProductName());//商品详情
    7. request.setTotalFee(this.getPrice());//总金额|分计
    8. request.setSpbillCreateIp(clientIp);//终端IP
    9. request.setNotifyUrl(this.getNotifyUrl());//设置回调路径
    10. request.setTradeType("JSAPI");//交易类型
    11. request.setProductId(this.getProductId().toString());//商品id
    12. request.setOpenid(this.getOpenId());
    13. return request;
    14. }

     

  3. 调用WxPayService接口的createOrder
    1. /**
    2. * 调用统一下单接口,并组装生成支付所需参数对象.
    3. *
    4. * @param <T> 请使用{@link com.github.binarywang.wxpay.bean.order}包下的类
    5. * @param request 统一下单请求参数
    6. * @return 返回 {@link com.github.binarywang.wxpay.bean.order}包下的类对象
    7. * @throws WxPayException the wx pay exception
    8. */
    9. <T> T createOrder(WxPayUnifiedOrderRequest request) throws WxPayException;
    1. //将上面封装的request传进去,调用支付,返回结果
    2. WxPayMpOrderResult result = payService.createOrder(wxPayUnifiedOrderRequest);

     

  4. 将返回的结果进行处理返回给前端 
  5. 对回调函数进行处理 调用WxPayService 的 parseOrderNotifyResult方法
    WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) throws WxPayException;

     

     

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/874114
推荐阅读
相关标签
  

闽ICP备14008679号