利用java实现提现金额到支付宝账户的功能利用爪哇岛实现提现金额到支付宝账户的功能,
实现步骤具体如下:
(学习视频分享:java教学视频)
1、导入依赖
属国
groupIdcom.alipay.sdk/groupId
artifactIdalipay-SDK-Java/artifactId
version4.9.5.ALL/version
/dependence 2,配置参数
3、实现方法
@ApiOperation(值=’企业转账到支付宝,httpMethod=’POST ‘,产生=’ application/JSON;字符集=UTF-8 ‘)
@ ApiImplicitParams(值={ @ ApiImplicitParam(值=’*用户令牌,名称=’令牌,默认值=’ ‘,数据类型=’字符串,参数类型=’标头’),
@ApiImplicitParam(值=’支付宝会员id ‘,name=’aliuserId ‘,defaultValue=’ ‘,dataType=’int ‘,paramType=’ query ‘,示例=’0 ‘),
@ApiImplicitParam(值=’金额,名称=’货币,默认值=’ ‘,数据类型=’字符串,参数类型=’查询)
})
@ post映射(‘/支付宝/转账)
public Result GetMoney(HttpServletrequest servlet请求,BigDecimal money,@NotNull(message=’支付宝会员编号不能为空)字符串aliuserId){
尝试{
字符串out _ biz _ no=’ R ‘-系统。Currettimemillis()((long)((数学。random()* 9 1)* 10000000001)’ ‘).substring(0,8);
//构造客户
SETALIPAYrequest=SETALIPAYrequest=new SETALIPAYrequest();
//设置网关地址https://openapi.alipay.com/gateway.do
SETALIPAYrequest。SetServerURL(‘ https://打开API。支付宝。com/gateway。do’);
//设置应用应用编号
setlipayrequest。setappid(appid);
//设置应用私钥
SETALIPAYrequest。set private key(ZZ pri);
SETALIPAYREquEST。SetFormat(‘ JSON ‘);
//设置字符集
setcharset(‘ UTF-8 ‘);
//设置签名类型
SetLipayRequest。SetSignType(‘ RSA 2 ‘);
//设置应用公钥证书路径
settlipayrequest。setcertpath(appcertpath);
//设置支付宝公钥证书路径
setalipaypublikertpath(alicertpath);
//设置支付宝根证书路径
settlipayrequest。setrootcertpath(rootcertpath);
//构造客户
支付宝客户端支付宝客户端=空;
尝试{
AlipayClient=new DefaultAlipayClient(SetAlipayRequest);
} catch (AlipayApiException e) {
e .printstacktrace();
}
//实例化接口
alipayfuntransunittransferrequest=new alipayfuntransunittransferrequest();
request.setBizContent(‘{ ‘
\ ‘ out _ biz _ no ‘ : \ ‘ ‘ out _ biz _ no ‘ \ ‘,’
\ ‘ trans _ amount \ ‘ : \ ‘ ‘ money ‘,\ ‘
\ ‘产品代码’ : ‘交易账户号_PWD\ ‘,’
\ ‘ biz _ scene ‘ : ‘ DIRECTE _ TRansfer \ ‘,’
\ ‘ order _ title \ ‘ : \ ‘转账\’,’
\ ‘收款人_信息’ :{ ‘
\ ‘ identity \ ‘ : \ ‘ ‘ aliuserId ‘ \ ‘,’
\ ‘ identity _ type \ ‘ : ‘支付宝_用户_ID\ ‘,’
‘ },’
\ ‘备注’ :\ ‘单笔转账\”
‘ }’);
alipayfuntransunittransferresponse响应=null
响应=支付宝客户端。证书执行(请求);
if(响应。issue cess()){
if(‘10000 ‘ .等于(响应。GetCode()){
返回Result.ok(‘转账成功’);
} else {
返回结果。失败(整数。(响应的值。getcode()),响应。getsubmsg());
}
}else {
返回结果。失败(整数。(响应的值。getcode()),响应。getsubmsg());
}
}捕获(例外e){
e .printstacktrace();
返回结果。错误(901,’支付宝转账失败!’);
}
}注意:该功能实现需要先实现支付宝授权功能获取支付宝会员id,支付宝会员编号是由2088开头的,如果是用客户手机号进行提现,就会还需要输入客户真实姓名。
用客户手机号提现只是部分参数不同,代码如下:
request.setBizContent(‘{ ‘
\ ‘ out _ biz _ no ‘ : \ ‘ ‘ out _ biz _ no ‘ \ ‘,’
\ ‘ trans _ amount \ ‘ : \ ‘ ‘ money ‘,\ ‘
\ ‘产品代码’ : ‘交易账户号_PWD\ ‘,’
\ ‘ biz _ scene ‘ : ‘ DIRECTE _ TRansfer \ ‘,’
\ ‘ order _ title \ ‘ : \ ‘转账\’,’
\ ‘收款人_信息’ :{ ‘
\ ‘ identity \ ‘ : \ ‘ ‘ aliuserId ‘ \ ‘,’
\ ‘ identity _ type \ ‘ : ‘支付宝_用户_ID\ ‘,’
\ ‘名称’ : ‘支付宝_用户_标识\ ‘ ‘
‘ },’
\ ‘备注’ :\ ‘姓名\”