SpringBoot整合支付宝(AliPay)的SDK,随着项目不断的增大需要对接的系统比较多,下面主要介绍对接支付宝(alipay),主要介绍是最简单的使用方法,具体的功能实现需要不同的业务逻辑处理,这里就不做过多的解释了。
1、需要引入alipay-sdk-java.jar
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.12.4.ALL</version> </dependency>
下面由我简单的介绍几个关键词:URL、appId 、privateKey 、aliPayPublicKey
URL: 表示访问支付宝(AliPay)的请求地址:https://openapi.alipay.com/gateway.do(正式环境),也可以是沙箱环境的测试地址
appId :表示小程序的APPID,支付宝分配给开发者的应用ID
privateKey :配置小程序时需要加密后的私有KEY
aliPayPublicKey:配置小程序时根据私有KEY生成的支付宝共有KEY
以上的几个关键词在支付宝对接官网上都有详细的步骤,这里就不进行展示了。官网地址:https://opendocs.alipay.com/open/
2、配置文件application.yml以及AliPayConfig配置文件
application.yml
pay: alipay: appId: ****** privateKey: ****** aliPayPublicKey: ******
AliPayConfig 配置文件
@Component public class AliPayConfig { private String url = "https://openapi.alipay.com/gateway.do"; @Value("${pay.alipay.appId}") private String appId; @Value("${pay.alipay.privateKey}") private String privateKey; @Value("${pay.alipay.aliPayPublicKey}") private String aliPayPublicKey; private String format = "json"; private String charset ="UTF-8"; private String signType ="RSA2"; @Bean public AlipayClient alipayClient() { return new DefaultAlipayClient(url, appId, privateKey, format, charset, aliPayPublicKey, signType); } }
3、下面介绍一下怎样的使用,只介绍一种比较简单的请求:换取授权访问令牌(alipay.system.oauth.token)
openAPI地址:https://opendocs.alipay.com/apis/api_9/alipay.system.oauth.token
public interface AliPayService { /** * alipay.system.oauth.token(换取授权访问令牌) * * @param authCode 用户授权码 * @return */ AlipaySystemOauthTokenResponse getAccessToken(String authCode); }
@Service public class AliPayServiceImpl implements AliPayService{ @Autowired private AlipayClient alipayClient; @Override public AlipaySystemOauthTokenResponse getAccessToken(String authCode) { AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); request.setGrantType("authorization_code"); request.setCode(authCode); try { AlipaySystemOauthTokenResponse response = alipayClient.execute(request); if(response.isSuccess()){ // 调用成功 log.info("请求支付宝接口失败"); }else{ // 调用失败 log.info("请求支付宝接口失败"); } return response; } catch (AlipayApiException e) { log.info("请求支付宝接口失败:{}", e); e.printStackTrace(); } return null; } }
希望能帮到你们!谢谢!若有不对的地方,请多指正!多谢!