Java实现单次转账到支付宝账户(新版接口)(SpringBoot)

Java实现单次转账到⽀付宝账户(新版接⼝)(SpringBoot)Java实现单次转账到到个⼈⽀付宝账户(新版接⼝)
2.ansfer(单笔转账接⼝/这是新版)
需要的maven依赖
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.8.73.ALL</version>
</dependency>
<dependency>
<groupId&le.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
Controller层
@RequestMapping("/updatewithdrawal")
@ResponseBody
@CrossOrigin(origins ="*", maxAge =3600)//跨域
public ResultMap updatewithdrawal(String id, Integer mType) throws AlipayApiException {
//根据提现订单id查询出提现记录对象
Withdraw w = withdrawalsById(id);
Manner()==1){
//调⽤转账到个⼈⽀付宝
Map<String, Object> map = alipayService.alipayWithdraw(id, w.getmMoney(),w.getuId(), w.getAccountpayeename(), w.getAccountpayee());
return ResultMap.ok(200,"success").put("data",map);
}else Manner()==2){
//这是提现
Map<String, String> b = userService.updatewithdrawal(id,mType);
return ResultMap.ok(200,"success").put("data",b);
}
(305,"提现异常");
}
Service层
/**
* ⽀付宝提现
* @param wOrderNumber  ⾃定义订单号
* @param price  提现⾦额
* @param zfbName ⽀付宝账户
* @param name  真实姓名
* @throws Exception
*/
Map<String, Object>alipayWithdraw(String wOrderNumber, Double price,String uId,String name, String zfbName )
/**
* ⽀付宝提现
* @param wOrderNumber  ⾃定义订单号
* @param price  提现⾦额
* @param zfbName ⽀付宝账户
* @param name  真实姓名
* @throws Exception
*/
@Override
public Map<String, Object>alipayWithdraw(String wOrderNumber,Double price,String uId,String name,String zfbName ) throws AlipayApiException { //SDK已经封装掉了公共参数,这⾥只需要传⼊业务参数。以下⽅法为sdk的model⼊参⽅式(model和biz_content同时存在的情况下取biz_content)。//构造client转接口
CertAlipayRequest certAlipayRequest =new CertAlipayRequest();
//设置⽹关地址openapi.alipay/gateway.do
certAlipayRequest.setServerUrl("openapi.alipay/gateway.do");
/
/设置应⽤AppId
certAlipayRequest.setAppId("应⽤AppId");
//设置应⽤私钥
certAlipayRequest.setPrivateKey("应⽤私钥");
certAlipayRequest.setFormat("json");
//设置字符集
certAlipayRequest.setCharset("UTF-8");
//设置签名类型
certAlipayRequest.setSignType("RSA2");
//设置应⽤公钥证书路径
certAlipayRequest.setCertPath("");
/
/设置⽀付宝公钥证书路径
certAlipayRequest.setAlipayPublicCertPath("");
//设置⽀付宝根证书路径
certAlipayRequest.setRootCertPath("");
//构造Client
AlipayClient alipayClient =new DefaultAlipayClient(certAlipayRequest);
//实例化接⼝
AlipayFundTransUniTransferRequest request=new AlipayFundTransUniTransferRequest();
Alipay alipay =new Alipay();
alipay.setOut_biz_no(wOrderNumber);//商户⾃定义的唯⼀订单号
alipay.setTrans_amount(price);//⾦额
PayeeInfo payerInfo=new PayeeInfo();
payerInfo.setIdentity(zfbName);//收款⽅⽀付宝账号
payerInfo.setIdentity_type("ALIPAY_LOGON_ID");
payerInfo.setName(name);
alipay.setProduct_code("TRANS_ACCOUNT_NO_PWD");
alipay.setBiz_scene("DIRECT_TRANSFER");
alipay.setPayee_info(payerInfo);
alipay.setOrder_title("标题");
alipay.setRemark("备注理由");
//转成json格式放⼊
String json =new Gson().toJson(alipay);
request.setBizContent(json);
AlipayFundTransUniTransferResponse response=null;
AlipayFundTransOrderQueryResponse response1=null;
Map<String, Object> map =new HashMap<String,Object>();
try{
response = ificateExecute(request);
if(response.isSuccess()){
if("10000".Code())){
Boolean b = userMapper.updatewithdrawal(wOrderNumber,1);
if(b){
map.put("code", Code());
map.put("success","true");
map.put("des","转账成功");
}else{
map.put("code", Code());
map.put("success","false");
map.put("des","转账成功,修改状态失败!");
}
}else{
map.put("code", Code());
map.put("sub_code", SubCode());//详情状态码
map.put("success","false");
map.put("sub_msg", SubMsg());//详情原因
}
return map;
}else{
//调⽤查询接⼝查询数据
AlipayFundTransOrderQueryRequest request1 =new AlipayFundTransOrderQueryRequest();            Alipay alipay1 =new Alipay();
alipay1.setOut_biz_no(wOrderNumber);
//转成json格式放⼊
String json1 =new Gson().toJson(alipay1);
request1.setBizContent(json1);
ificateExecute(request1);
if(response1.isSuccess()){
if("10000".Code())){
map.put("code", Code());
map.put("success","true");
map.put("des","已经转账成功,⽆需重复请求!");
}else{
map.put("code", Code());
map.put("sub_code", SubCode());//详情状态码
map.put("success","false");
map.put("sub_msg", SubMsg());//详情原因
}
return map;
}
else{
map.put("success","false");
map.put("des","订单查询结果失败!");
return map;
}
}
}catch(AlipayApiException e){
e.printStackTrace();
map.put("success","false");
map.put("des","转账失败!");
}
return map;
}
⼤致看了看,⽬前可查的⽀付宝单笔转账的代码实现基本都是⽼版本接⼝,以上是新版本(单笔转账到⽀付宝账号/查询转账订单)的代码实现(基础版代码,可以思考如何去优化) 好记性不如烂笔头~

本文发布于:2024-09-24 14:28:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/358967.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:转账   设置   查询   代码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议