微信小程序接口对接实现

本文介绍使用com.github.binarywang实现微信接口对接的方法,主要包括:

1)引入4.7.0版本的weixin-java-miniapp和weixin-java-pay依赖包;

2)通过配置文件自动加载微信参数;

3)自动创建WxMaService和WxPayService的Bean对象;

4)实现用户登录授权、获取用户信息和手机号等功能;

5)完成微信支付创建、回调处理、发货信息上传和退款等支付流程。文章详细说明了各个功能的实现代码,涵盖从配置到业务逻辑的完整对接过程。

1、引入依赖包

我们选用4.7.0版本,这里我们只介绍小程序的使用,所以只引入小程序包和支付包,如果需要开发公众号程序,需要另引入公众号的包weixin-java-mp。


			
				com.github.binarywang
				weixin-java-miniapp
				4.7.0
			
			
				com.github.binarywang
				weixin-java-pay
				4.7.0
			

2、配置文件自动加载

首先,在配置文件中增加微信的响应配置,小程序的配置包括appid和secret,微信支付需要商户平台获取商户ID和密钥,配置项目中的异步回调地址,如果需要对接退款接口,要单独申请证书,申请过程参考商户平台说明。配置如下

wx:
  app:
    app_id: wx1a27d343773cc222
    secret: 39735c5f99e32c74ecfa035963344eae
  pay:
    mch_id: 17166111581
    key: 39735c5f99e32c74ecfa035963344eae
    notify_url: https://xxx.com/wechat/pay/notify
    refund_key_path: /data/cert/apiclient_cert.p12

在 application启动类上添加@EnableConfigurationProperties注解,springboot启动时会自动加载配置文件,将配置文件读取到Config类中。

3、自动创建bean对象

通过配置,在springboot启动时,完成service对象的自动创建。

如下是WxMaService和WxPayService对象的创建方法。

微信支付时用的appid为小程序的appid。

  
    @Bean
    public WxMaService getWxMaService() {
        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
        config.setAppid(appConfig.wx_appid);
        config.setSecret(appConfig.wx_secret);
        config.setMsgDataFormat("JSON");

        WxMaService service = new WxMaServiceImpl();
        service.setWxMaConfig(config);
        return service;
    }

    @Bean
    public WxPayService getWxPayService() {
        WxPayConfig payConfig = new WxPayConfig();
        payConfig.setAppId(StringUtils.trimToNull(appConfig.wx_appid()));
        payConfig.setMchId(StringUtils.trimToNull(appConfig.getWxPayMchId()));
        payConfig.setMchKey(StringUtils.trimToNull(appConfig.getWxPayKey()));
        payConfig.setKeyPath(StringUtils.trimToNull(appConfig.wxRefundKeyPath));
        payConfig.setTradeType("JSAPI");
        payConfig.setNotifyUrl(StringUtils.trimToNull(appConfig.getNotifyUrl()));

        // 可以指定是否使用沙箱环境
        payConfig.setUseSandboxEnv(false);

        wxPayService = new WxPayServiceImpl();
        wxPayService.setConfig(payConfig);
        
        return wxPayService;
    }

4、WxMaService的方法调用

wxMaService可以处理的服务很多,比如WxMaMsgService,WxMaMediaService,WxMaQrcodeService,WxMaShareService,WxMaCloudService,WxMaLiveService,WxOcrService,WxMaLinkService等,我们这

你可能感兴趣的:(java编程,微信小程序,java,binarywang)