SpringBoot整合支付寶(AliPay)的SDK


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;
    }
}

  

希望能幫到你們!謝謝!若有不對的地方,請多指正!多謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM