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

大家好,我是小悟

使用场景

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

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

在这里插入图片描述

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

在这里插入图片描述

方便快捷

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

当发起接口转账后,用户可收到支付宝APP到账消息提醒。对商家来说最重要的是,可以免费使用接口,无手续费,支付宝官方提供安全保障。而对用户来说最重要的是,提现资金实时到账。

功能实现

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

在这里插入图片描述

使用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_ACCOUNT_NO_PWD");
        model.setBizScene("DIRECT_TRANSFER");
        model.setOrderTitle("转账到支付宝账户");
        Participant payeeInfo = new Participant();
        payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
        payeeInfo.setIdentity("支付宝账户");
        payeeInfo.setName("参与方真实姓名");
        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天才可以。接口加签方式一定要选择公钥证书模式。

提升限额

涉及到转账,自然就有限额的问题,只要产品签约成功就有个默认限额,转账给个人支付宝账户,单笔最高5万,转账给企业支付宝账户,单笔最高10万。每日最高可以转200万,每月最高可以转300万。最低转账金额为0.1元。

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

在这里插入图片描述

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

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空码字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值