原创路径 : /qq_38439885/article/details/90677850
pom 增加
<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>3.2.0</version></dependency>
附上github /Wechat-Group/WxJava/wiki
一、证书申请
企业付款需要用到p12证书,证书可以在商户平台的 账户平台 - API安全 - API证书 中申请到。(注:需要升级一下)
二、WxPayConfig配置
将 com.github.binarywang.wxpay.service.WxPayService 作为Bean注入到项目中
实现代码如下,具体作用读者可引入pom后自行查看,binarywang作者的注释非常详细。有问题可留言讨论
我在使用@Autowired 注解时无法注入 所以就注掉了 具体调用方法下面会贴上
/*** 企业支付WxPayConfig配置* @author hsw*/@Configurationpublic class WxConfig {// @Autowired// private WxMpProperties wxMpProperties;@Beanpublic WxPayConfig wxPayConfig() {// final List<WxMpProperties.MpConfig> configs = wxMpProperties.getConfigs();WxPayConfig payConfig = new WxPayConfig();// payConfig.setAppId(configs.get(1).getAppId());// payConfig.setMchId(configs.get(1).getPayMchId());// payConfig.setMchKey(configs.get(1).getPaySecretKey());// payConfig.setNotifyUrl(configs.get(1).getPayResultUrl());// payConfig.setKeyPath(configs.get(1).get);payConfig.setTradeType("JSAPI");payConfig.setSignType("MD5");return payConfig;}@Beanpublic WxPayService wxPayService(WxPayConfig payConfig) {WxPayService wxPayService = new WxPayServiceImpl();wxPayService.setConfig(payConfig);return wxPayService;}
3、API调用
/*** 进行微信提现操作 (企业付款至用户零钱)* @param openId* @param amout提现金额* @param partnerTradeNo 单号* @param desc备注*/private EntPayResult getWithdrawal(String openId, BigDecimal amout,String partnerTradeNo, String desc, HttpServletRequest request){final List<WxMpProperties.MpConfig> configs = wxMpProperties.getConfigs();EntPayRequest entPayRequest = new EntPayRequest();entPayRequest.setAppid(configs.get(1).getAppId());entPayRequest.setMchId(configs.get(1).getPayMchId()); entPayRequest.setPartnerTradeNo(partnerTradeNo);entPayRequest.setOpenid(openId);entPayRequest.setCheckName("NO_CHECK");entPayRequest.setAmount(Integer.valueOf(amout.multiply(new BigDecimal(100)).setScale(0,BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString()));entPayRequest.setDescription(desc);entPayRequest.setSpbillCreateIp(IpUtils.getIpAddr(request));EntPayResult entPayResult = null;try {//此处调用=============================================================// 通过Java配置来实例化Spring容器AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(WxConfig.class);// 在Spring容器中获取Bean对象WxConfig wxConfig = context.getBean(WxConfig.class);WxPayService wxPayService = wxConfig.wxPayService(wxConfig.wxPayConfig());entPayResult = wxPayService.getEntPayService().entPay(entPayRequest);log.info("entPayResult : " + entPayResult);System.out.println(entPayResult);} catch (WxPayException e) {log.error("付款失败,返回报文" + e);throw new ApiException(e.getCustomErrorMsg());}return entPayResult;}