Springboot对接支付宝沙箱支付

1、进入支付宝开发平台—沙箱环境

沙箱环境-支付宝文档中心

1.1、进入个人沙箱环境

点击进入沙箱环境并用支付宝登陆

沙箱管理界面如图所示

  • appid,支付宝网关,自定义密钥等          
  • 这里是沙箱支付宝(虚拟)的账号和密码,可以用来支付         
1.2、接下来进行几个密钥的生成

点击进入密钥工具
点击生成

 这时我们拿到两个密钥,将它们保存,这两个密钥很重要

  • 应用私钥
  • 应用公钥
1.3、拿到两个密钥后,进行自定义密钥配置

进入最开始的沙箱管理界面,点击自定义密钥,点击设置(查看),我们选择的是RSA2密钥

 

选择“公钥”这一选项

将上一步骤生成的应用公钥填进来,会得到支付宝公钥这另一个密钥,记住并保存这个支付宝公钥 

1.4、至此,我们沙箱环境的配置和基本参数都已经获取到。

2、项目端的代码配置

2.1、首先导入支付宝支付的依赖到pom.xml中

这里我用的是springboot+maven+themyleaf项目

        <!--   支付宝支付的依赖     -->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.16.2.ALL</version>
        </dependency>
2.2、创建支付的Controller类
  • 将从Controller中进入支付宝支付,需完成支付宝提供的接口
  • 创建PayController类,有如下代码

创建Controller类后,首先设置如下私有属性

  • APP_ID (appId,从沙箱管理页面获得)
  • APP_PRIVATE_KEY (
### Spring Boot 集成支付宝沙箱提现接口 #### 准备工作 在开始集成之前,确保已经注册并创建了支付宝开放平台账号,并申请开通了开发者权限以及获取到了应用ID(`app_id`)、商户私钥、支付宝公钥等必要信息。 #### 添加依赖项 对于Spring Boot项目来说,在`pom.xml`中加入官方提供的SDK作为Maven依赖来简化开发流程: ```xml <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-easysdk-bundle-all</artifactId> <version>3.7.12.ALL</version> </dependency> ``` 此版本号可能不是最新的,请访问[Maven仓库](https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk-bundle-all)查询最新版次[^4]。 #### 初始化EasySDK客户端实例 通过配置文件注入参数的方式完成初始化设置。通常会把敏感数据存放到环境变量或者加密后的数据库表里而不是直接写死在代码里面;下面是一个简单的例子展示如何读取这些值用于构建AlipayClient对象: ```java @Configuration public class AlipayConfig { @Value("${alipay.app-id}") private String appId; @Value("${alipay.merchant-private-key}") private String merchantPrivateKey; @Value("${alipay.alipay-public-key}") private String alipayPublicKey; @Bean(name="defaultAlipayClient") public DefaultAopClient defaultAlipayClient() throws Exception{ return new DefaultAopClient( "https://openapi.alipaydev.com/gateway.do", // 沙盒环境网关地址 appId, merchantPrivateKey, "json", "UTF-8", alipayPublicKey, "RSA2" ); } } ``` 注意这里使用的API入口是针对测试用途的特殊URL——即沙盒环境中所提供的服务端点。 #### 编写转账业务逻辑 编写具体的提现方法,调用相应的API接口执行资金转移动作。以下是基于上述已有的DefaultAopClient Bean的一个样例实现方式: ```java @Service @Slf4j public class WithdrawService { @Autowired private DefaultAopClient client; /** * 提现至银行卡/余额账户. */ public void withdraw(String userId, BigDecimal amount){ try { AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest(); JSONObject bizContentJson = new JSONObject(); bizContentJson.put("out_biz_no", UUID.randomUUID().toString()); // 商户订单号 bizContentJson.put("trans_amount", amount.toString()); bizContentJson.put("product_code","TRANS_ACCOUNT_NO_PWD"); // 固定值 // 收款方账户类型及号码 bizContentJson.put("payee_type","ALIPAY_LOGON_ID"); bizContentJson.put("payee_account","[email protected]"); request.setBizContent(bizContentJson.toJSONString()); log.info("发起提现请求..."); AlipayFundTransToaccountTransferResponse response = client.execute(request); if(response.isSuccess()){ log.info("提现成功!"); }else{ throw new RuntimeException("提现失败:" + response.getSubMsg()); } } catch (Exception e) { log.error(e.getMessage(),e); throw new RuntimeException("处理提现过程中发生异常!",e); } } } ``` 以上代码片段展示了向指定支付宝登录名关联的资金账户发起一笔固定金额转账的过程。实际应用场景下还需要考虑更多细节因素比如幂等问题防止重复提交、异步通知回调验证等等[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值