平台资金提现解决方案之实现支付宝单笔转账到银行卡功能

news/2024/11/24 11:27:45/

大家好,我是小悟

使用场景

不管是做APP、电脑网站、手机网站还是小程序,为了推广基本上都离不开用户分佣的场景。

换句话说就是在其平台内为每个用户设置“电子钱包”功能,而电子钱包在平台那里只是一串数字,这就需要平台为用户实现提现的功能。

在这里插入图片描述

而支付宝单笔转账到银行卡账户主要解决电商等行业商家在其平台内存在用户分佣等场景下,平台内的用户资金提现时面临的主要问题。

在这里插入图片描述

方便快捷

使用支付宝提供的单笔转账到银行卡账户接入很灵活,可应用于多行业平台内用户分佣等场景,提现到指定收款人的银行卡。可以和自身业务系统直接集成实现转账功能,无需频繁登录支付宝商家后台转账。

当发起接口转账后,对商家来说最重要的是,可以免费使用接口,无手续费,支付宝官方提供安全保障。而对用户来说最重要的是,都希望提现资金能够实时到账,单笔转账到银行卡账户可以选择预期T+0到账或预期T+1到账,但最终到账时效要以银行机构为准。

发放账户可以是企业支付宝账户或者个人支付宝账户,收款账户可以是企业对公银行账户或者个人银行卡账户。

功能实现

实现功能前需要联系支付宝业务人员为应用绑定转账到银行卡账户产品,签约成功了才可以调用。接口加签方式一定要选择公钥证书模式,除了产品本身要求外,安全级别更高。

使用SDK接入更是极其方便,几行代码即可完成接入。一运行就把应用参数传入SDK提供的方法创建DefaultAlipayClient实例,不需要每次调用的时候创建。

@Bean
public DefaultAlipayClient aliPayClient() throws AlipayApiException {CertAlipayRequest certAlipayRequest = new CertAlipayRequest();certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");certAlipayRequest.setAppId("支付宝应用id");certAlipayRequest.setPrivateKey("支付宝应用私钥路径");certAlipayRequest.setFormat("json");certAlipayRequest.setCharset("UTF-8");certAlipayRequest.setSignType("RSA2");certAlipayRequest.setCertPath("支付宝应用公钥路径");certAlipayRequest.setAlipayPublicCertPath("支付宝公钥路径");certAlipayRequest.setRootCertPath("支付宝根证书路径");return new DefaultAlipayClient(certAlipayRequest);
}

调用alipay.fund.trans.uni.transfer(单笔转账接口),实现转账功能。

public AjaxResult uniTransfer(AlipayFundTransUniTransferModel model) {try {AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();model.setOutBizNo("商家侧唯一订单号");model.setTransAmount("1");model.setProductCode("TRANS_BANKCARD_NO_PWD");model.setBizScene("DIRECT_TRANSFER");model.setOrderTitle("转账到银行卡账户");Participant payeeInfo = new Participant();payeeInfo.setIdentityType("BANKCARD_ACCOUNT");payeeInfo.setIdentity("收款方银行账户名称");payeeInfo.setName("收款方银行账户名称");BankcardExtInfo bankcardExtInfo = new BankcardExtInfo();bankcardExtInfo.setInstName("机构名称");bankcardExtInfo.setAccountType("1");bankcardExtInfo.setInstProvince("银行所在省份");bankcardExtInfo.setInstCity("收款银行所在市");bankcardExtInfo.setInstBranchName("收款银行所属支行");bankcardExtInfo.setBankCode("银行支行联行号");payeeInfo.setBankcardExtInfo(bankcardExtInfo);model.setPayeeInfo(payeeInfo);model.setRemark("转账到银行卡账户");Map<String, String> params = new HashMap<>(2);params.put("payer_show_name", "转账到银行卡账户");model.setBusinessParams(JSON.toJSONString(params));request.setBizModel(model);AlipayFundTransUniTransferResponse response = aliPayClient.certificateExecute(request);logger.info("支付宝 单笔转账到银行卡账户接口:{}", response.getBody());int code = Integer.valueOf(response.getCode());if(response.isSuccess()){logger.info("支付宝 单笔转账到银行卡账户接口 调用成功 code=10000");UniTransferResult result = new UniTransferResult();result.setOutBizNo(response.getOutBizNo()).setOrderId(response.getOrderId()).setPayFundOrderId(response.getPayFundOrderId()).setStatus(response.getStatus()).setTransDate(response.getTransDate());return AjaxResult.success(code, result);} else {logger.info("支付宝 单笔转账到银行卡账户接口 调用失败");return AjaxResult.error(HttpStatus.ERROR_MSG, response.getSubMsg());}} catch (AlipayApiException e) {e.printStackTrace();logger.error("支付宝 单笔转账到银行卡账户接口 调用异常,原因:{}", e.getMessage());return AjaxResult.error(e.getMessage());}
}

注意事项

值得注意的是,目前这个接口暂未全量开放,需要联系支付宝业务人员签约。准入条件仅针对已实名认证的支付宝企业账号才可以申请签约该产品,而且需要注册满90天。接口加签方式一定要选择公钥证书模式。

提升限额

涉及到转账,自然就有限额的问题,只要产品签约成功就有个默认限额,默认限额要以和支付宝业务人员实际签约后的结果为准。但按官方的文档来看,说是日转账、月转账额度可以更高。

对于大部分行业来说够用了。不过这个不是限定的,如果确实是很大的平台,这些额度不够用的话还可以申请提升额度,相对灵活。

在这里插入图片描述

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海


http://www.ppmy.cn/news/47388.html

相关文章

基于蛋白-配体复合物构建药效团的药物设计(Pharmacophore)

基于蛋白-配体复合物构建药效团的药物设计&#xff08;Pharmacophore&#xff09; step 1.蛋白-配体复合物准备 点击File-->Import Structures导入之前已经下载好的1IEP.pdb&#xff08;Abl蛋白和Imatinib的晶体复合物&#xff09; 蛋白准备&#xff1a;点击Tasks--->…

opencv配置安装

opencv配置安装 1、安装方式 https://blog.csdn.net/qq_45022687/article/details/120241068 根据这个网址的配置进行安装 2、解编译 mutex/thread等 似乎因为mingw的问题,#include 等直接引入线程无法直接引用&#xff0c;这导致了原有代码中直接使用mutex/thread的部分需要…

cephadm bootstrap命令使用

运行引导程序命令 运行命令&#xff1a;ceph bootstrap cephadm bootstrap --mon-ip *<mon-ip>*此命令将&#xff1a; 在本地为新集群创建监视器和管理器守护程序 主机。 为 Ceph 集群生成新的 SSH 密钥并将其添加到根目录 用户的文件。/root/.ssh/authorized_keys …

PHP 7 教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 PHP7入门教程 - 从简单的步骤了解PHP 7&#xff0c;从基本到高级概念&#xff0c;包括简介&#xff0c;性能&#xff0c;环境设置&#xff0c;标量类型声明&#xff0c;返回类型声明&#xff0c;空值合并运算符&#xff0c;Spaceship运算符&#xff0c;常量数组&…

“成功学大师”杨涛鸣被抓

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 4月15日&#xff0c;号称帮助一百多位草根开上劳斯莱斯&#xff0c;“成功学大师”杨涛鸣机其团队30多人已被刑事拘留&#xff0c;培训课程涉嫌精神传销&#xff0c;警方以诈骗案进行立案调查。 …

国产什么牌子的蓝牙耳机音质好?国产适合听音乐的蓝牙耳机推荐

现如今&#xff0c;蓝牙耳机的性能越来越多&#xff0c;一款蓝牙耳机不可能将各种性能做到极致。大家在选择蓝牙耳机时&#xff0c;无外乎从佩戴、音质、降噪、延迟等因素出发&#xff0c;那么&#xff0c;国产什么牌子的蓝牙耳机音质好&#xff1f;根据这个问题&#xff0c;我…

蓝桥 卷“兔”来袭编程竞赛专场-09凯撒加密 题解

赛题介绍 挑战介绍 恺撒密码也称恺撒加密、恺撒变换、变换加密&#xff0c;是一种最简单且最广为人知的加密技术。采用的是替换方法对信息中的英文字符循环替换为字母表序列中该字符后面或前面的第 N 个字符。例如当 N 2 时&#xff0c;所有的字母 A 都会被替换成 C&#…

【ARMv8 编程】A64 数据处理指令——位域字节操作指令

有些指令将字节、半字或字扩展到寄存器大小&#xff0c;可以是 X 或 W。这些指令存在于有符号&#xff08;SXTB、SXTH、SXTW&#xff09;和无符号&#xff08;UXTB、UXTH&#xff09;变体中&#xff0c;并且是适当的位域操作指令。 这些指令的有符号和无符号变体都将字节、半字…