支付宝参数设置

This commit is contained in:
Guoqs
2024-06-07 11:33:26 +08:00
parent 94abb13a1a
commit 38a8cd884d
14 changed files with 216 additions and 71 deletions

View File

@@ -1,60 +0,0 @@
package com.jsowell.alipay;
import com.alibaba.fastjson2.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipaySystemOauthTokenRequest;
import com.alipay.api.response.AlipaySystemOauthTokenResponse;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.response.RestApiResponse;
import com.jsowell.common.util.StringUtils;
import com.jsowell.wxpay.service.WxAppletRemoteService;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashMap;
import java.util.Map;
/**
* 支付宝小程序service
*/
@Service
public class AliAppletRemoteService {
private Logger log = LoggerFactory.getLogger(AliAppletRemoteService.class);
private static AlipayConfig getAlipayConfig() {
String privateKey = "<-- 请填写您的应用私钥例如MIIEvQIBADANB ... ... -->";
String alipayPublicKey = "<-- 请填写您的支付宝公钥例如MIIBIjANBg... -->";
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
alipayConfig.setAppId("<-- 请填写您的AppId例如2019091767145019 -->");
alipayConfig.setPrivateKey(privateKey);
alipayConfig.setFormat("json");
alipayConfig.setAlipayPublicKey(alipayPublicKey);
alipayConfig.setCharset("UTF-8");
alipayConfig.setSignType("RSA2");
return alipayConfig;
}
/**
* (支付宝) 换取授权访问令牌
* alipay.system.oauth.token(换取授权访问令牌)
* @param grantType 必选 授权方式
* @param code 可选 授权码
* @param refreshToken 可选 刷新令牌
* @return
*/
}

View File

@@ -0,0 +1,48 @@
package com.jsowell.alipay.config;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import com.jsowell.common.constant.Constants;
import lombok.Data;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Order(5)
@Data
@Component
@ConfigurationProperties(prefix = "alipay")
public class AliPayConfig implements CommandLineRunner {
private String gatewayHost;
private String appId;
private String merchantPrivateKey;
private String alipayPublicKey;
private String notifyUrl;
@Override
public void run(String... args) throws Exception {
// 设置参数(全局只需设置一次)
Config config = new Config();
config.protocol = Constants.HTTPS;
config.gatewayHost = gatewayHost;
config.signType = Constants.RSA2;
config.appId = appId;
// 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
config.merchantPrivateKey = merchantPrivateKey;
// 注证书文件路径支持设置为文件系统中的路径或CLASS_PATH中的路径优先从文件系统中加载加载失败后会继续尝试从CLASS_PATH中加载
// config.merchantCertPath = "<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->";
// config.alipayCertPath = "<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->";
// config.alipayRootCertPath = "<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt -->";
// 注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
config.alipayPublicKey = alipayPublicKey;
// 可设置异步通知接收服务地址(可选)
// config.notifyUrl = "<-- 请填写您的支付类接口异步通知接收服务地址例如https://www.test.com/callback -->";
// 可设置AES密钥调用AES加解密相关接口时需要可选
// config.encryptKey = "<-- 请填写您的AES密钥例如aa4BtZ4tspm2wnXLb1ThQA== -->";
Factory.setOptions(config);
}
}

View File

@@ -0,0 +1,57 @@
package com.jsowell.alipay.service;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipaySystemOauthTokenRequest;
import com.alipay.api.response.AlipaySystemOauthTokenResponse;
import com.alipay.easysdk.factory.Factory;
import com.jsowell.alipay.config.AliPayConfig;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.response.RestApiResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashMap;
import java.util.Map;
/**
* 支付宝小程序service
*/
@Service
public class AliAppletRemoteService {
private Logger log = LoggerFactory.getLogger(AliAppletRemoteService.class);
/**
* (支付宝) 换取授权访问令牌
* alipay.system.oauth.token(换取授权访问令牌)
* @return
*/
@RequestMapping("getInfo")
public RestApiResponse<?> getInfo(String auth_code) throws AlipayApiException {
RestApiResponse<?> restApiResponse;
try {
if(auth_code==null||auth_code.length()==0) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
}
Map<String,Object> map=new HashMap<>();
map.put("userid", "");
restApiResponse = new RestApiResponse<>(map);
} catch (BusinessException e) {
restApiResponse = new RestApiResponse<>(e.getCode(), e.getMessage());
} catch (Exception e) {
restApiResponse = new RestApiResponse<>(ReturnCodeEnum.CODE_FAILED);
}
return restApiResponse;
}
}