微信小程序接口对接实现

目录

1、引入依赖包

2、配置文件自动加载

3、自动创建bean对象

4、WxMaService的方法调用

4.1根据code获取用户登录信息。

4.2获取微信授权信息

4.3 linkService的使用

4.4 MediaService的使用

4.5 微信模版消息

5、通过WxPayService对象完成微信支付功能

5.1 微信支付

5.2上传发货信息。

5.2 支付退款


本文介绍使用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。


			<dependency>
				<groupId>com.github.binarywang</groupId>
				<artifactId>weixin-java-miniapp</artifactId>
				<version>4.7.0</version>
			</dependency>
			<dependency>
				<groupId>com.github.binarywang</groupId>
				<artifactId>weixin-java-pay</artifactId>
				<version>4.7.0</version>
			</dependency>

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等,我们这里只将最基础的WxMaUserService的使用,其他的使用后续再更新。

4.1根据code获取用户登录信息。

根据code可以获取用户的openId、sessionKey,如果小程序配置的开放平台,还可以获取unionId。

这里获取的sessionKey需要保存在缓存中,后续接口调用会用到,而且sessionKey不允许明码传输。

    //根据前端换回的code获取用户基础信息
    WxMaJscode2SessionResult res = wxMaService.getUserServic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过往的时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值