因项目中有用到支付宝支付,这里对java微信支付的开发流程和注意事项到做一次记录,以遍后面有需要的时候翻阅,方便回顾
接入前准备工作可自行参考支付宝官方文档配置,参考地址:https://opendocs.alipay.com/open/204/105051
支付宝支付交互流程如下图:
笔者使用的是java,应用maven依赖引入,最新版本依赖资源下载https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java,可自行查看引入
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.10.192.ALL</version>
</dependency>
支付宝支付Java 代码
配置信息
alipay:
serverUrl: https://openapi.alipay.com/gateway.do
appId: ###
privateKey: ######
notifyUrl: ###
package com.hjy.ft.config;
import com.hjy.pay.AliPayUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.io.*;
/**
* @version 1.0
* @className AliPayStartUpRunner
* @description 程序启动后加载
* @since 2021/5/13 16:46
*/
@Component
@Order(value = 0)
public class AliPayStartUpRunner implements CommandLineRunner {
/**
* 服务网关
*/
@Value("${alipay.serverUrl}")
private String serverUrl;
/**
* 应用id
*/
@Value("${alipay.appId}")
private String appId;
/**
* 应用私钥
*/
@Value("${alipay.privateKey}")
private String privateKey;
/**
* 异步通知地址
*/
@Value("${alipay.notifyUrl}")
private String notifyUrl;
@Override
public void run(String... args) throws Exception {
AliPayUtil.appId = appId;
AliPayUtil.serverUrl = serverUrl;
AliPayUtil.privateKey = privateKey;
AliPayUtil.notifyUrl = notifyUrl;
//应用公钥证书路径
AliPayUtil.certPath = aliPayPath("appCertPublicKey_2021002113644216.crt");
//支付宝公钥证书路径
AliPayUtil.alipayPublicCertPath = aliPayPath("alipayCertPublicKey_RSA2.crt");
//支付宝根证书路径
AliPayUtil.rootCertPath = aliPayPath("alipayRootCert.crt");
}