当前位置:   article > 正文

让支付更简单 Sping Boot 对接微信支付V3 (Java详细教程)_binarywang 微信支付 v3

binarywang 微信支付 v3

相关jar包

  1. <dependency>
  2. <groupId>com.github.binarywang</groupId>
  3. <artifactId>weixin-java-pay</artifactId>
  4. <version>4.4.9.B</version>
  5. </dependency>

添加相关配置

  1. package com.yz.utils.pay;
  2. import com.github.binarywang.wxpay.config.WxPayConfig;
  3. import com.github.binarywang.wxpay.service.WxPayService;
  4. import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
  5. import lombok.AllArgsConstructor;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
  9. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. @Configuration
  13. @ConditionalOnClass(WxPayService.class)
  14. @AllArgsConstructor
  15. @Slf4j
  16. public class WxPayConfiguration {
  17. @Bean
  18. @ConditionalOnMissingBean
  19. public WxPayService wxService() {
  20. WxPayConfig payConfig = new WxPayConfig();
  21. payConfig.setApiV3Key(StringUtils.trimToNull(WxPayProConfig.mchKey));
  22. payConfig.setAppId(StringUtils.trimToNull(WxPayProConfig.appId));
  23. payConfig.setMchId(StringUtils.trimToNull(WxPayProConfig.mchId));
  24. payConfig.setMchKey(StringUtils.trimToNull(WxPayProConfig.mchKey));
  25. payConfig.setPrivateKeyContent(WxPayProConfig.privateKey.getBytes());
  26. payConfig.setPrivateCertContent(WxPayProConfig.certPem.getBytes());
  27. //payConfig.setSignType("HMAC-SHA256");
  28. payConfig.setSignType("MD5");
  29. payConfig.setKeyPath("D:\\developApp\\project\\camping\\src\\main\\resources\\apiclient_cert.p12");
  30. //payConfig.setKeyPath("/usr/project/file/apiclient_cert.p12");
  31. // 可以指定是否使用沙箱环境
  32. payConfig.setUseSandboxEnv(false);
  33. WxPayService wxPayService = new WxPayServiceImpl();
  34. wxPayService.setConfig(payConfig);
  35. log.debug("wxConfig:{}", payConfig);
  36. return wxPayService;
  37. }
  38. }

服务层注入 wxService

封装好参数直接调用createOrderV3就可以了

  1. import com.github.binarywang.wxpay.service.WxPayService;
  2. @Autowired
  3. private WxPayService wxService;
  4. wxService.createOrderV3();

回调处理 直接在notifyResult 可以拿到支付单号 

  1. @RequestMapping("/goodsNotify")
  2. public String goodsNotify(@RequestBody String xmlData) throws WxPayException, IOException {
  3. WxPayOrderNotifyV3Result notifyResult = wxService.parseOrderNotifyV3Result(xmlData, null);
  4. //处理业务
  5. }

另外wxService还有很多方法,比如退款、提现、转账等。

在您使用微信支付的过程中,务必要遵循微信支付官方文档中的规范和安全要求。确保您的代码和交易流程符合最佳实践,以保障支付的安全性和可靠性。

希望本文对您有所帮助,并且能够激发您在微信支付领域的进一步探索。随着技术的不断发展,支付领域也在不断演进,我们期待看到更多创新和便捷的支付解决方案的出现。

如果您在实际应用中遇到任何问题或有任何反馈,欢迎随时与我们分享。祝愿您在微信支付的开发和使用过程中取得成功!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号