支付宝AIP的学习(提现功能的实现)

支付宝开发平台:

支付宝开放平台

支付宝的依赖包:

		<dependency>
			<groupId>com.alipay.sdk</groupId>
			<artifactId>alipay-sdk-java</artifactId>
			<version>4.35.139.ALL</version>
		</dependency>

支付宝的配置(提现功能):

#支付宝配置
alipay:
#  app_cert_path: src/main/resources/crt/appCertPublicKey_2021003199665444.crt
#  alipay_cert_path: src/main/resources/crt/alipayCertPublicKey_RSA2.crt
#  alipay_root_cert_path: src/main/resources/crt/alipayRootCert.crt
  app_cert_path: /home/images/appCertPublicKey_2021003199665444.crt
  alipay_cert_path: /home/images/alipayCertPublicKey_RSA2.crt
  alipay_root_cert_path: /home/images/alipayRootCert.crt
  #应用私钥
  privateKey: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCAwT4xlJyjUDIbpB271FbtALU3rrfznYeTWJOmwi2FC1e406LvtrmkBcElT2MSQYqarANykxURUCOme/pSEB6xnvP+HfZPTfNpHX4bTMpTsWBem+5kniPVlED8s5NoRlUvauzhvTshaEweRbwTl+0uLDKfDU+jHG9pLCRMzDrgrWy4f6uD/5rqyj7/gASC+bJ7kuhblsJwYHkPs0K1rcArllSltPudCE1O9jdlJShVCenDQ1uDr9fn6fuFloAvJjthI7bBtMMWdYeI/A4fLOH0JMOY2YdnKg0QMLxx+9iLBP8Wj3Yc/NVQqM2RZB4XWi81/+n6FHnWakA7hUrfLg15AgMBAAECggEAa3df3uhI2XM9b57LBpSUPVuC5kgZ1+fbWlvrWZvnfI3cGTPkYqqkRkhbTzX03i8Abls2wXIMepfmObZvWAGGbQDcbHU7ujO5ADqSoFy236ZEZpNGJotsI3+LwqBsX/OcdGiN8VkNurOgHQBdnAkJ+akAU4s7tkwsnZ8vaT5pwk8pV/ZlQ4eG+JllOevj3tOyxWu1dYMltJBnaNk7YWZOPEy7iQxFuQD7tvmYv98mCXhN1U8jtNbWr2s9LHkMnaTpSCj9siBmXlEbZL75fU7RXX7OoF2LP6HZQ76ytOsOxw1Po77Evm5JEN9B6qMNZz1mKlFNdZjqLD+LU+jEskhaAQKBgQDdMi36Al0xQMAV/GwdnY7vswAQKY394QkPfDKmEXkXlwZilzpo2s6i296jw4eqVJwNF9QY62NGLGj2tfmJtRitz9DaS0BNmCU707GxpMfG0cvY+x9+k3+hiW5RZ/GBhFfLbWUQC7r6kU8w5ECFO5lquAZopiflseagm5glF9CpuQKBgQCVA4PCQtbeTsE7lxAmSbTdnQFfUddemTAI/UpeqB6geMSbA7YHZsLOCB7DAmI/qBtZA5ncq2jcrTKWusumYoiV5dCc9ZwXabb9dGyTVem6oG4Y90XVCrwSy7W6gwrl9jUQM0UoFbBl7MSPYYeBWqlA3mdRRP5D80XMVwHMKodhwQKBgHCQY7NR1qkE4XuOzFo53w5+Ui7nZrnm9hxqQMAgLjZiBb7QZMoNZ5CbQW6nR3fXvN4w3R+dUhTY7sV2D7oTba6uDgO4vc1++pu6fDgBuiSkiQ8vpHRejVngPUKyGcWmWqNMVVzYC1wN7HXeAjOLA+S6J5DD1ZPfd5UN+VwPBYIJAoGAXpEfcg4m/Ggwe1fQGOxXyviT4WE388H12Q6dvtqkrSRXaST+xU2yvTwsAYgmv804pdICOCfT4ZBM9ZlQGqSXl8GEFchNKhKd3dWf/hTcwuKDXHa4q44ncyoyh04YgX4xiLlw3xJ8owKSb4fujenyVceO++V0E710g0yISICI8EECgYA7jid5gEXqG0NyfLNc+ULoFNF2+pQZNlUnBYsOy37gISYIQ5KJnh8wFWsAUvQ7KXfK1VbnT1YIrP8Wx3dtzdSBEKFp8aV1cdJxoXAR8xrKrE4ZIgCZ8ioRy6G0PDjvaZVam6a69xy3aKPfojpFSnQmxpd0GItuXIrbv0DY7jstKA==
  #支付宝网关地址
  serverUrl: https://openapi.alipay.com/gateway.do
  #AppId
  appId: 2021003199665444

证书位置:

支付宝AIP的公共响应参数的封装

通过一个config配置文件来实现公共类的配置:

package com.example.alipaymenzhu.config;
/**
 * 配置文件
 * */

import com.alipay.api.*;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:alipay.properties")
@Data
public class AlipayClientConfig {
    //#应用的ID
    @Value("${alipay.app_id}")
    private String alipayAppId;
    //#商户PID
    @Value("${alipay.seller_id}")
    private String alipaySellerId;
    //#支付宝的网关
    @Value("${alipay.gateway_url}")
    private String alipayGatewayUrl;
    //#商户的私钥
    @Value("${alipay.merchant_private_key}")
    public String  alipayMerchantPrivateKey;
    //#支付宝公钥
    @Value("${alipay.alipay_public_key}")
    private String alipayAlipayPublicKey;
    //接口内容加密方式
    @Value("${alipay.content_key}")
    private String alipayContentKey;
    //#页面跳转同步通知页面路径
    @Value("${alipay.retrun_url}")
    private String alipayRetrunUrl;
    //#异步通知的页面路径
    @Value("${alipay.notify_url}")
    private String alipayNotifyUrl;

    @Bean
    public AlipayClient alipayClient() throws AlipayApiException {
        /**
         * 阿里云开放平台SDK封装了签名实现
         * 2.该封装的都是公共参数
         * */
        //这个方法是支付宝提供的
        AlipayConfig alipayConfig =new AlipayConfig();
        //应用的ID
        alipayConfig.setAppId(alipayAppId);
        //网关地址
        alipayConfig.setServerUrl(alipayGatewayUrl);
        //应用的私钥
        alipayConfig.setPrivateKey(alipayMerchantPrivateKey);
        //设置请求格式,固定值json
        alipayConfig.setFormat(AlipayConstants.FORMAT_JSON);//“json”
        //设置字符集
        alipayConfig.setCharset(AlipayConstants.CHARSET_UTF8);//"UTF8"
        //设置支付宝公钥
        alipayConfig.setAlipayPublicKey(alipayAlipayPublicKey);
        //设置签名类型
        alipayConfig.setSignType(AlipayConstants.SIGN_TYPE_RSA2);
        /**
         * DefaultAlipayClient:封装了请求要的所以东西(除开请求参数)
         * */
        AlipayClient alipayClient=new DefaultAlipayClient(alipayConfig);
        return alipayClient;

    }


}

在业务逻辑中实现(请求参数)的业务逻辑:

AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
        AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
        AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
        model.setOutBizNo("201806300003");//订单号
        model.setRemark("驿站订单提现");
        model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
        model.setBizScene("DIRECT_TRANSFER");
        Participant payeeInfo = new Participant();
        payeeInfo.setIdentity("18874597214");//收款账号
        payeeInfo.setIdentityType("ALIPAY_LOGON_ID");//支付宝账户
        payeeInfo.setName("刘晖");
        model.setPayeeInfo(payeeInfo);
        model.setTransAmount("00.10");
        model.setProductCode("TRANS_ACCOUNT_NO_PWD");
        model.setOrderTitle("驿站订单提现");
        request.setBizModel(model);
        AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
        System.out.println(response.getPayFundOrderId());
        System.out.println(response.getOutBizNo());
        System.out.println(response.getStatus());
        System.out.println(response.getTransDate());
        if (response.isSuccess()) {
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }

注意:这些功能的实现,首先要去支付宝开发平台去申请服务!!!!

猜你喜欢

转载自blog.csdn.net/m0_55699184/article/details/131246847