文档章节

支付宝api实现转账到单个账号

貔貅叔
 貔貅叔
发布于 11/15 16:47
字数 678
阅读 138
收藏 0

项目后台需要实现用户提现功能,支付宝平台对应的就是“单笔转账到支付宝账户”。具体实现见代码,无套路!

肯定需要先申请支付宝商户账号相关信息。以下为个人沙箱环境实现代码,生产上只需要修改appid、收款方账号、网关、商户私钥,支付宝公钥等信息为生产参数。

maven项目引入ali的sdk:

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>3.3.4.ALL</version>
</dependency>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>

核心代码如下:

String appOrderNO = "kevin201808080885";            //商户订单号
String payee_account = "kevin3965@sandbox.com";//收款方账户
String payer_show_name = "貔貅叔的店";               //付款方姓名(可选)
String payee_real_name = "沙箱环境";               //收款方真是姓名(可选)
String remark = "貔貅叔的店转账到沙箱环境";              //转账备注,当付款方为企业账户,且转账金额达到50000元,remark不能为空。
Double amount = 2.00;                               //转账金额
String payee_type = "ALIPAY_LOGONID";//收款方账户类型,当前为支付宝登录号,支持邮箱和手机号格式。

/*初始化客户端参数*/
String appId = "2016091100486186";
String CHARSET = "UTF-8";
String ALIPAY_URL = "https://openapi.alipaydev.com/gateway.do";//支付宝网关,当前为沙箱环境
//商户私钥
String APP_PRIVATE_KEY = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKY……";
//支付宝公钥
String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAswr9LdJ……";

//初始化客户端
DefaultAlipayClient alipayClien = new DefaultAlipayClient(ALIPAY_URL, appId, APP_PRIVATE_KEY, "JSON", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//实例化提现请求
AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();

// //构造参数方式一:
// JSONObject jsono = new JSONObject();
// jsono.put("out_biz_no", orderNO);
// jsono.put("payee_type", payee_type);
// jsono.put("amount", amount);
// jsono.put("payer_show_name", payer_show_name);
// jsono.put("payee_account", payee_account);
// jsono.put("payee_real_name", payee_real_name);
// jsono.put("remark", remark);
// //绑定参数到请求对象上
// request.setBizContent(jsono.toJSONString());

//构造参数方式二:
//实例化请求参数model
AlipayFundTransToaccountTransferModel model = new AlipayFundTransToaccountTransferModel();
model.setOutBizNo(appOrderNO);
model.setAmount(amount.doubleValue() + "");
model.setPayeeType(payee_type);
model.setPayeeAccount(payee_account);
model.setPayeeRealName(payee_real_name);
model.setPayerShowName(payer_show_name);
model.setRemark(remark);
//绑定参数model
request.setBizModel(model);
try {
    //执行请求
    AlipayFundTransToaccountTransferResponse response = alipayClien.execute(request);
    System.out.println(JSON.toJSONString(response));
} catch (AlipayApiException e) {
    e.printStackTrace();
}

执行结果如下:

{
    "body": "{\"alipay_fund_trans_toaccount_transfer_response\":{\"code\":\"10000\",\"msg\":\"Success\",\"order_id\":\"20181115110070001502620000235294\",\"out_biz_no\":\"kevin20180808085\",\"pay_date\":\"2018-11-15 14:35:29\"},\"sign\":\"Mdmn0niiKfH4qcoNw3I+68rI/7Ac6/VnErBpHgQQlFzwJLKCHvf4ywYcZZtbefSNG/+E……\"}",    "code": "10000", 
    "errorCode": "10000", 
    "msg": "Success", 
    "orderId": "20181115110070001502620000235294", 
    "outBizNo": "kevin20180808085", 
    "params": {
        "biz_content": "{\"payee_account\":\"kevin3965@sandbox.com\",\"amount\":2.00,\"remark\":\"貔貅叔的店转账到沙箱环境\",\"out_biz_no\":\"kevin20180808085\",\"payee_type\":\"ALIPAY_LOGONID\",\"payer_show_name\":\"貔貅叔的店\"}"
    }, 
    "payDate": "2018-11-15 14:35:29", 
    "success": true
}

说明:10000为请求成功,其他返回值说明见支付宝开发文档

异常响应示例:

{
    "alipay_fund_trans_toaccount_transfer_response": {
        "code": "20000", 
        "msg": "Service Currently Unavailable", 
        "sub_code": "isp.unknow-error", 
        "sub_msg": "系统繁忙"
    }, 
    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

参考:
https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
https://docs.open.alipay.com/common/105806

© 著作权归作者所有

共有 人打赏支持
貔貅叔
粉丝 5
博文 108
码字总数 47995
作品 0
咸阳
程序员
私信 提问
支付宝对接3(收费问题)

一、支付方式: 支付宝有2种方式对接支付。 1、平台做中转,钱先到平台账号,然后再调用单笔转账给用户转账。 2、让商户账户直接进行签约以及收款。 二、支付费率: 我们做平台,选择平台做中...

显kui
01/15
0
0
laravel-ebank 基于电商的聚合支付和虚拟积分解决方案

laravel-ebank 项目功能基本满足使用,并流畅运行,持续更新中,如有使用方式问题可在QQ群里@群主 现已加入豪华午餐 推荐中小型项目使用 此项目功能已完成全部代码并满足基本需求(已服务三家...

yybawang
07/03
0
0
EBank 电子银行发布 2.1.0 版本

ebank 电商类站内虚拟积分与聚合支付通用解决方案 项目功能基本满足使用,并流畅运行,持续维护中,如有使用问题可提交 issue 已进入平滑维护期 推荐中小型项目使用 此项目完全开源且功能已完...

yybawang
10/15
0
0
商城转账到卖家账户的支付宝方案:支付宝单笔转账

最近在做一个电子商务的项目,刚接手这个项目时发现好多问题,就拿转账来说,后台没有直接转账到商家账户,需要到银行柜台转账,感觉这样的设计太失败了,不说几万人用,就是几千人,一天也有...

qq_35703234
2017/04/12
0
0
最轻量的支付宝转账工具类--AlipayZeroSdk

Alipay ZeroSdk是最轻量的支付宝转账工具类。可以在应用中直接跳转到支付宝转账的界面,比复制粘贴支付宝账号更加优雅、安全。 然而它的功能就是直接跳转到转账界面,不会获得支付结果。 首先...

fython
2016/08/30
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

关于ElasticSearch的使用过程遇到的问题

由于作者从官网下载了ES5.6.10的安装包,解压之后就开始运行ES,前面一切正常。 后面某个查询条件失效。 解决: 1.先试了把单个查询条件撤离出来,当成一个Test来跑,发现还是获取不到值,表...

DoLo-lty
10分钟前
0
0
sed 替换文本内得路径字符等等

1. 句子 sed -i 's%/opt/apache-maven-3.5.3/conf/settings.xml%/data/opt/apache-maven-3.5.3/conf/settings.xml%g' ./*/config.xml 2. 解释 sed linux 一个文件流式处理的工具 2.1 -i 在当......

Aruforce
11分钟前
0
0
mysql_索引

索引类型 哈希表 有序数组 搜索树 MySQL索引 B-树 B+树 innodb的索引 索引维护 关于自增主键的使用 参考 极客时间《mysql实战45讲》

grace_233
11分钟前
0
0
“入乡随俗,服务为主” 发明者量化兼容麦语言啦!

5年时光 我们裹挟前行。发明者量化从筚路蓝缕到步履蹒跚,从以“区块链资产交易”为阵地,再到以“内外盘商品期货”为依托。再到今天全面兼容“麦语言”。每一步,我们始终都在为建立一个优秀...

酒逢知己千杯少
12分钟前
0
0
session深入探讨

简介 session,会话,其实是一个容易让人误解的词。它总跟web系统的会话挂钩,利用session,javaweb项目实现了登录状态的控制。坊间流传,关闭浏览器,就是关闭了web系统的会话。其实浏览器对...

千里明月
14分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部