微信支付java详细开发-jia包添加相关配置服务层注入wxService封装好参数直接调用createOrderV3
发布时间:2023-07-01 09:04 浏览次数:次 作者:佚名
相关jia包
com.github.binarywang
weixin-java-pay
4.4.9.B
173c348ed6f0546699c89684a30434b8
添加相关配置
package com.yz.utils.pay;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnClass(WxPayService.class)
@AllArgsConstructor
@Slf4j
public class WxPayConfiguration {
@Bean
@ConditionalOnMissingBean
public WxPayService wxService() {
WxPayConfig payConfig = new WxPayConfig();
payConfig.setApiV3Key(StringUtils.trimToNull(WxPayProConfig.mchKey));
payConfig.setAppId(StringUtils.trimToNull(WxPayProConfig.appId));
payConfig.setMchId(StringUtils.trimToNull(WxPayProConfig.mchId));
payConfig.setMchKey(StringUtils.trimToNull(WxPayProConfig.mchKey));
payConfig.setPrivateKeyContent(WxPayProConfig.privateKey.getBytes());
payConfig.setPrivateCertContent(WxPayProConfig.certPem.getBytes());
//payConfig.setSignType("HMAC-SHA256");
payConfig.setSignType("MD5");
payConfig.setKeyPath("D:\\developApp\\project\\camping\\src\\main\\resources\\apiclient_cert.p12");
//payConfig.setKeyPath("/usr/project/file/apiclient_cert.p12");
// 可以指定是否使用沙箱环境
payConfig.setUseSandboxEnv(false);
WxPayService wxPayService = new WxPayServiceImpl();
wxPayService.setConfig(payConfig);
log.debug("wxConfig:{}", payConfig);
return wxPayService;
}
}
b848500dca38786bb38445f6919b1c0e
服务层注入wxService
封装好参数直接调用createOrderV3就可以了
3462057b72ee370d1d0fb2e07cc329e9
import com.github.binarywang.wxpay.service.WxPayService;
@Autowired
private WxPayService wxService;
wxService.createOrderV3();
回调处理 直接在notifyResult 可以拿到支付单号
@RequestMapping("/goodsNotify")
public String goodsNotify(@RequestBody String xmlData) throws WxPayException, IOException {
WxPayOrderNotifyV3Result notifyResult = wxService.parseOrderNotifyV3Result(xmlData, null);
//处理业务
}
另外wxService还有很多方法微信支付java详细开发,比如退款、提现、转账等。
在您使用微信支付的过程中微信支付java详细开发,务必要遵循微信支付官方文档中的规范和安全要求。确保您的代码和交易流程符合最佳实践,以保障支付的安全性和可靠性。
希望本文对您有所帮助,并且能够激发您在微信支付领域的进一步探索。随着技术的不断发展,支付领域也在不断演进,我们期待看到更多创新和便捷的支付解决方案的出现。
如果您在实际应用中遇到任何问题或有任何反馈,欢迎随时与我们分享。祝愿您在微信支付的开发和使用过程中取得成功!