SpringCloud、Java小程序对接微信支付

箪瓢轩,意境盎然,清雅自然,觅天下知音

目录

前言

主要内容

1.添加MAVEN依赖到项目中

2.编写用于完成请求的微信支付工具类

其他支付方式的步骤

1.初始化微信支付相关的配置

2.根据自己支付类型的不同构建官方提供的支付服务对象

3.根据具体接口生成对应的请求对象,设置好参数后使用已构建的服务对象发出请求

总结


前言

看了几篇介绍对接微信支付的博客,不是内容比较老就是存在各种问题,本文介绍了在环境中如何快速对接微信支付

主要内容

使用微信支付官方为v3版本推荐的SDK,具体介绍见微信支付官方文档:

SDK,工具 | 微信支付商户平台文档中心 (qq.com)https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay6_0.shtml

1.添加MAVEN依赖到项目中

<dependency> 
    <groupId>com.github.wechatpay-apiv3</groupId> 
    <artifactId>wechatpay-java</artifactId> 
    <version>0.2.7</version> 
</dependency>

2.编写用于完成请求的微信支付工具类

import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import com.wechat.pay.java.service.payments.jsapi.JsapiService;
import com.wechat.pay.java.service.payments.jsapi.model.Amount;
import com.wechat.pay.java.service.payments.jsapi.model.Payer;
import com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest;
import com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse;


public class WePayUtils {

    //小程序ID
    private static String appid="";
    /** 商户号 */
    private static String merchantId = "";
    /** 商户API私钥路径 */
    private static String privateKeyPath = "";
    /** 商户证书序列号 */
    private static String merchantSerialNumber = "";
    /** 商户APIV3密钥 */
    private static String apiV3key = "";

    private static Config config;

    private static JsapiService jsapiService;

    static {
        // 使用自动更新平台证书的RSA配置
        // 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
        config =new RSAAutoCertificateConfig.Builder()
                        .merchantId(merchantId)
                        .privateKeyFromPath(privateKeyPath)
                        .merchantSerialNumber(merchantSerialNumber)
                        .apiV3Key(apiV3key)
                        .build();
        // 根据支付类型的不同构建service
        jsapiService=new JsapiService.Builder().config(config).build();
    }

    public static String getPrepayId(String openid,String orderNo){
        //根据不同的业务构建不同的request对象,并使用所构建的service完成业务接收响应
        PrepayRequest prepayRequest=new PrepayRequest();
        Amount amount = new Amount();
            amount.setTotal(1);
        Payer payer=new Payer();
            payer.setOpenid(openid);
        prepayRequest.setPayer(payer);
        prepayRequest.setAmount(amount);
        prepayRequest.setAppid(appid);
        prepayRequest.setMchid(merchantId);
        prepayRequest.setDescription("订单描述");
        prepayRequest.setNotifyUrl("//回调地址");
        prepayRequest.setOutTradeNo(orderNo);
        PrepayResponse prepayResponse=jsapiService.prepay(prepayRequest);
        return prepayResponse.getPrepayId();
    }

     //补充调用其他官方接口的方法


}

此处参考了官方示例,以小程序支付为例,完成以上部分代码后即可调用微信官方的API完成自己的业务。 

其他支付方式的步骤

小程序支付使用的是com.wechat.pay.java.service.payments.jsapi包,其他业务参照文档选择包,

1.初始化微信支付相关的配置

        // 使用自动更新平台证书的RSA配置
        // 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
       Config config =new RSAAutoCertificateConfig.Builder()
                        .merchantId(merchantId)
                        .privateKeyFromPath(privateKeyPath)
                        .merchantSerialNumber(merchantSerialNumber)
                        .apiV3Key(apiV3key)
                        .build();

 此处微信支付的SDK会根据所提供的信息进行初始化,为后续构建service做准备。

注意:此处全局最好只执行一次

2.根据自己支付类型的不同构建官方提供的支付服务对象

 // 根据支付类型的不同构建service
JsapiService jsapiService=new JsapiService.Builder().config(config).build();

根据步骤1中的配置,按自己的支付方式生成服务对象,小程序支付使用JsapiService

3.根据具体接口生成对应的请求对象,设置好参数后使用已构建的服务对象发出请求

     //根据不同的业务构建不同的request对象,并使用所构建的service完成业务接收响应
        PrepayRequest prepayRequest=new PrepayRequest();
      //......在此处设置请求参数

        //使用service调用相关的接口发出请求获取响应
        PrepayResponse prepayResponse=jsapiService.prepay(prepayRequest);

总结

本文基本说明了如何在Springcloud中使用官方的SDK实现微信支付。


文章内容是个人开发经验,仅供参考,如有问题敬请您的指正

End 箪瓢轩

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java小程序可以使用微信支付接口实现支付功能。对接微信支付接口的步骤如下: 1. 获取微信支付接口的开发者账号,并进行账号绑定和认证。 2. 在Java小程序的后端代码中,引入微信支付的SDK,可以使用第三方的开源SDK,如微信官方提供的java-sdk或者其他优秀的支付SDK。 3. 在小程序中,创建一个支付请求页面,用户选择商品并点击支付按钮。将用户购买的商品信息传递到后台。 4. 后台接收到支付请求后,调用微信支付接口,传递必要的支付参数,包括商户号、商户订单号、支付金额、支付方式等。 5. 微信支付接口会返回一个预支付交易会话标识prepay_id,后台将该值返回给前端,前端将该值存储到小程序支付参数中。 6. 前端根据prepay_id、商户号、商户订单号等参数,调用微信支付的API,通过微信支付页面生成支付订单。 7. 用户在小程序中看到生成的支付订单,选择支付方式(如微信支付或其他支付方式),输入支付密码等信息完成支付。 8. 支付成功后,微信支付接口会向后台发送支付结果通知,后台需要对接收到的结果进行验证,包括验证订单是否支付成功、验证订单金额是否一致等。 9. 后台验证通过后,向前端返回支付成功的信息,前端展示支付成功页面,并修改相关订单状态。 10. 后台同时需要记录支付相关的信息,如支付时间、支付方式等,供后续的订单查询和统计使用。 以上就是Java小程序对接微信支付接口的一般步骤,具体实现过程还需要根据具体的业务需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值