支付宝企业转账到个人账户

                              支付宝企业转账到个人账户

一、介绍

在日常项目中都会碰到支付功能需求,最近公司项目需要给用户退款,其实也就是公司账户转账到用户个人支付宝账号。

二、环境准备

1、蚂蚁金服开放平台开通

2、设置私钥和公钥

(1)、通过支付宝提供的签名验签工具生成商用应用私钥/公钥。私钥需要保存在项目配置信息中,公钥设置到支付宝,之后会生成一个支付宝公钥,你要复制该支付宝公钥到项目配置信息中去。

三、代码实现

1、官方资料

maven依赖信息:https://docs.open.alipay.com/54/103419/

支付宝转账API:https://docs.open.alipay.com/309/106237/

支付宝转账开发文档:https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer

2、代码实现

配置文件信息:

核心代码片段:

 

// service层

@Service("alipayServiceImpl")
@Slf4j
public class AlipayServiceImpl implements AliPayService{
	
	// 支付宝AppID
	@Value("${alipay.appid}")
	private String appId;
	
	// 支付宝公钥
	@Value("${alipay.public_key}")
	private String alipay_public_key;
	
	// 支付宝私钥
	@Value("${alipay.private_key}")
    private String alipay_private_key;

	@Override
    // account:用户支付宝账户
    // name:用户支付宝真实姓名
    // remark:转账备注信息 参数根据实际需求进行动态提取或者写死
	public String TransferUser(String account, String name, String amount, String remark){
		AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",appId,alipay_private_key,"json","GBK",alipay_public_key,"RSA2");
		AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
		String out_biz_no = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
		request.setBizContent("{" +
		"\"out_biz_no\":\""+out_biz_no+"\"," +
		"\"payee_type\":\"ALIPAY_LOGONID\"," +
		"\"payee_account\":\""+account+"\"," +
		"\"amount\":\""+amount+"\"," +
		"\"payer_show_name\":\"支付商户信息\"," +
		"\"payee_real_name\":\""+name+"\"," +
		"\"remark\":\""+remark+"\"" +
		"  }");
		AlipayFundTransToaccountTransferResponse response;
		try {
			response = alipayClient.execute(request);
			if(response.isSuccess()){
                log.info("code:{}",response.getCode());
				log.info("msg:{}",response.getMsg());
				log.info("sub_msg:{}",response.getSubMsg());
                log.info("支付宝调用成功.....");
				return "success";
			} else {
                log.info("code:{}",response.getCode());
				log.info("msg:{}",response.getMsg());
				log.info("sub_msg:{}",response.getSubMsg());
				log.info("支付宝调用失败.....");
				return "fail";
			}
		} catch (AlipayApiException e) {
			e.printStackTrace();
			return "fail";
		}
	}
}

// controller层
@RequestMapping("/alipay")
	public String alipay(){
        // 这些参数都是需要从前台传递过来的,看你具体需求,我暂时是写死的
		return aliPayServiceImpl.TransferUser("支付宝账户","真实姓名", "0.1", "备注");
	}

日志信息:

成功案例:

 

失败案例:

 

注意事项:

以上环境一定要配置正确,具体支付环境要是正式的服务器环境,或者你也可以通过外网映射软件将自己的电脑网段发布到正式环境也就是外网,否则在本地测试是不会成功的。

PHP 转账支付宝通常需要通过支付宝官方提供的支付接口——支付宝即时到账API(Alipay Instant Transfer API),或者集成如支付宝SDK这样的第三方库。以下是基本流程: 1. **注册并配置**: - 首先,你需要在支付宝开放平台创建开发者账号并申请服务窗商户。 - 获取AppID、私钥等必要信息,并在项目中配置。 2. **安装支付宝SDK**: - 下载官方的 PHP SDK 或者使用 Composer 安装 `alipay-sdk-php` 库。 3. **创建交易**: - 创建订单信息,包括金额、商品描述、买家和卖家信息等。 - 使用 `alipay.trade.create` 接口发起转账请求,设置相关的参数如请求参数(biz_content)、支付方式等。 ```php use Alipay\Core\AlipayClient; use Alipay\Payment\Common\AlipayTradeCreateRequest; $alipayClient = new \AlipayClient([ 'app_id' => 'your_appid', 'gateway_url' => 'https://openapi.alipay.com/gateway.do', 'private_key_path' => 'path/to/your/private/key.pem', 'format' => 'json', 'charset' => 'utf-8', 'sign_type' => 'RSA2', ]); $order = [ 'out_trade_no' => 'your_unique_order_id', 'total_amount' => '0.01', // 人民币0.01元, 'subject' => '测试转账', ]; $request = new AlipayTradeCreateRequest(); request->setBizContent(json_encode($order)); $result = $alipayClient->execute($request); ``` 4. **处理响应**: - 解析返回结果,确认交易是否成功。异步通知也需要处理。 5. **安全性和合规性**: - 确保涉及敏感信息的安全,比如私钥不要硬编码,而是从环境变量或加密存储中获取。 - 遵守支付宝的支付规则,比如检查订单状态、验证用户身份等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值