springboot 支付宝支付(支付宝转账)


springboot 支付宝支付(支付宝转账)

应用:商户向其它支付宝账户转账,可用于商户间的贷款结算、商户个人间的资金划转等

官方文档:https://opendocs.alipay.com/open/309/106235

*************************

引入 jar 包

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

*************************

示例

*******************

配置文件

application.yml

alipay:
  appid: 2016092500591327
  gatewayUrl: https://openapi.alipaydev.com/gateway.do
  format: JSON
  charset: utf-8
  signType: RSA2
  returnUrl: http://t2fjqh.natappfree.cc/return
  notifyUrl: http://t2fjqh.natappfree.cc/notify
  app-private-key: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCcF+Oc3uJEFt59LXB30LkP/Ocn6cMtxTeeqiM99tzGi3nyMao33jPYjwKvQk+djDb7i4bgJNVjx5QtEuJruMsiOMUO34QzYqnSZLLdA8Oltbf5LG/+qJMnF+K1dw9DWvw5dF6rbXvvqMpzruBJ99ntbWBK5hE/ayYODPhmcQ8rLV0nedYCb4nIhQueF3l6pFDG5e/eRyTj3Vb6faSf30DTKhMk4Yvj3Mx3f8h4eGGjFvvbSKdO8oI8HQYkEQh8k8pqkkQs3FSawp5KNAH13CNzGEnLewsOaHiEEwT1qSTc7ppewp7oyP2KtXw9TQySlkNFyLorqUHjF71hgCFmDEIxAgMBAAECggEACT5c60hDq/aSvGT5eQ7yNqEqazGrrkU0kv/OUHgTAOr3kMEiLGbLOTLW3NwXbOQFyYWsug9UV7FU9ApfQDPUS7WC7euMn6JjHiN6eB4l8uU8/NOF2lXPSQxgD5D6ZWm48AoVJR+5rCqZupoLjDXSQP4uKqFPOis1OLXJ6/8b/9l7L0jf2eW70Ht6HrNxfXTAn07FoJAEHnjePCgyYHuor9oD/0bi/0KRJkeQtqMZHX3oYhhYmQzIMTXIi9hMd+U6lmaknDFV8AMOfemX0Dq6KNYPwWP86YWelZ230xHXgE3Jk493unFZetliGG6vVyq4Whd5OTcXmE64+8GRKxO5QQKBgQDOwRR4KhyqbA7LXjyNhYXr86pOEt4wpeZGFsbcryRsxf0HSZpVWwUMVsOFkHRBZ3InbkfRCdHMBcqiA5dDwYOyo4l0R7sWdc9rteXvLdw57tBDbkiLK2HW+iUP0mXXghiD7ynyaAyLdvu5upUdDj1G1OI40Ye1ThOK60WseXyC6QKBgQDBRb2dg4YDKh0HtTsl8e/A1rPzob7KyRSi7bY31WtEOETeY6FMsC9jMm6fxJtT+Xtp5XfrWhQptn0E1fLJ7c7TAM1hFs2YBzOLKzinVxo0nFfRGkMrBotoAQmh+SKME1BjyW8qGeVIC8DSSazvVDDpp3Z6+WjNESL7e8yAn3VoCQKBgDVxGwVkfTxf6gMPPL+n/9HZje/YWK5ic38ya/ynGNc05g54K/hcKpXh53AiwqoVPyCKFO4nh58g8BuoqfTNlGkcdG8mC2nm0dKZlfGY/Q/MdvC3FPFEKWoUBnhsff6SlhukOkd6NaPnAXIklF6KS7R/WmotXtKyd8K0xbGrRU/hAoGAX4diHp3oul2xdaLddnbsA0vcLFrRHBhhq9qFC3ngiBqr56QlEOuwsH438Z5TDCGvH3t9V4Xxm2CI0MATPj3d0at+2DNWMYO1tV8KpKPH3yM7wK4TbwvQEfsZUMb8jXHqdTgWSx/7lS3CA+7InI7nkkXkqQnoBBwpR1Y8kYK/nEkCgYBmVBBabnYfaUkooDBPOZu7xCQH1xf+yPV0jH8T8FMYFn6biCXVnHhjZ5Mm8h8Y7gctRpZtqnG30TD71HLsRohxfQkxRyp9NvhiJpingBL860lM89JA3C/pNDf8FV3hq4RFIPDkBA3v7QbytDTNl4bQ7oYiFegWndLVBboNIntNFg==
  alipay-public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1ynoaKrpzpipzhsivNwIRBrEPMeFYLWkWSMU9E3KAdBBpSGHN9x3OVWYe/F3yxRgLtbOdqN1DBYiKLUBvUu2NAqH1KV6nkt3Rx/gc7MKMwL+TWBmXKX5L1eK17TOPKMXoqVN5grFrCH0hx/U6lZnr2M/7A93yPlSKLgJwVYj560wzElBL+fvjR0V0OA+FWJryKluBtJYUKXBadFKuyVwNnyGqmHFxvtSHuErhOrg0YiYIfhV3f7zE5q1mIz7ecwH0W7nB7gtFjLt1k4WSpwyeEI8Xpl7SLMvHdwEXUwTU0h/V7TumYWgUe0ft70NTps+zPwJlmcEluHg0VSs7UrDVQIDAQAB

*******************

config 层

AlipayProperties

@Data
@Component
@ConfigurationProperties("alipay")
public class AlipayProperties {
 
    private String appId;
    private String gatewayUrl;
    private String format;
    private String charset;
    private String signType;
    private String appPrivateKey;
    private String alipayPublicKey;
 
    private String returnUrl;
    private String notifyUrl;
}

AlipayConfig:创建AlipayClient

@Configuration
public class AlipayConfig {
 
    @Resource
    private AlipayProperties alipayProperties;
 
    @Bean
    public AlipayClient initAlipayClient(){
        return new DefaultAlipayClient(alipayProperties.getGatewayUrl(),
                alipayProperties.getAppId(),alipayProperties.getAppPrivateKey(),
                alipayProperties.getFormat(),alipayProperties.getCharset(),
                alipayProperties.getAlipayPublicKey(),alipayProperties.getSignType());
    }
}

*******************

controller 层

AlipayController

@RestController
public class Alipay4Controller {

    @Resource
    public AlipayClient alipayClient;

    @Resource
    public AlipayProperties alipayProperties;

    @RequestMapping("/transfer")
    public String transfer() throws Exception{
        AlipayFundTransUniTransferModel model=new AlipayFundTransUniTransferModel();
        model.setOutBizNo("10000");
        model.setBizScene("DIRECT_TRANSFER");
        model.setTransAmount("100");
        model.setProductCode("STD_RED_PACKET");

        Participant payer=new Participant();       //付款方账户
        payer.setIdentityType("ALIPAY_USER_ID");   //标识类型,ALIPAY_USER_ID:支付宝的会员ID ALIPAY_LOGON_ID:支付宝登录号,邮箱、手机等
        payer.setIdentity("****");
        model.setPayerInfo(payer);

        Participant payee=new Participant();       //收款方账户
        payee.setIdentityType("ALIPAY_LOGON_ID");  //标识类型,ALIPAY_USER_ID:支付宝的会员ID ALIPAY_LOGON_ID:支付宝登录号,邮箱、手机等
        payee.setIdentity("****");
        payee.setName("沙箱环境");                  //标识类型为ALIPAY_LOGON_ID需设置name
        model.setPayeeInfo(payee);

        AlipayFundTransUniTransferRequest request=new AlipayFundTransUniTransferRequest();
        request.setBizModel(model);

        AlipayFundTransUniTransferResponse response=alipayClient.execute(request);
        return response.getBody();
    }

    @RequestMapping("/transferQuery")
    public String query() throws Exception{
        AlipayFundTransCommonQueryModel model=new AlipayFundTransCommonQueryModel();
        model.setOutBizNo("10000");
        model.setProductCode("TRANS_ACCOUNT_NO_PWD");
        model.setBizScene("DIRECT_TRANSFER");

        AlipayFundTransCommonQueryRequest request=new AlipayFundTransCommonQueryRequest();
        request.setBizModel(model);

        AlipayFundTransCommonQueryResponse response=alipayClient.execute(request);
        return response.getBody();
    }
}

注意:沙箱环境需要使用企业支付宝账号进行测试,个人支付宝账号无法测试

发布了387 篇原创文章 · 获赞 98 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/105447082