编程语言
首页 > 编程语言> > Java app支付宝提现

Java app支付宝提现

作者:互联网

 

上一篇说明app支付宝绑定,接下来是提现,调用支付宝转账接口实现提现功能

支付宝转账参数实体类:

package com.framework.loippi.plugins.aliapppay.withdrawal;

import java.math.BigDecimal;

/**
* 支付宝转账参数实体类
*/
public class Withdrawal {
//商户端的唯一订单号,对于同一笔转账请求,商户需保证该订单号唯一
private String outBizNo;

//转账标题
private String orderTitle;

//转账金额 取值范围[0.1,100000000];
private BigDecimal transAmount;

//收款方唯一标识(支付宝用户ID)
private String identity;

//业务备注
private String remark;


public String getOutBizNo() {
return outBizNo;
}

public void setOutBizNo(String outBizNo) {
this.outBizNo = outBizNo;
}

public String getOrderTitle() {
return orderTitle;
}

public void setOrderTitle(String orderTitle) {
this.orderTitle = orderTitle;
}

public BigDecimal getTransAmount() {
return transAmount;
}

public void setTransAmount(BigDecimal transAmount) {
this.transAmount = transAmount;
}

public String getIdentity() {
return identity;
}

public void setIdentity(String identity) {
this.identity = identity;
}

public String getRemark() {
return remark;
}

public void setRemark(String remark) {
this.remark = remark;
}

}


支付宝sdk版本:
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.10.140.ALL</version>
</dependency>

支付宝提现工具类(使用证书格式):
package com.framework.loippi.plugins.aliapppay.withdrawal;


import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.framework.loippi.cache.ConfigCache;


public class AliPayWithdrawalUtil {
// 支付宝应用appid
private static String appid = "你的应用appID";

//支付宝应用私钥
private static String merchantPrivateKey = "应用私钥";

//支付宝应用公钥证书路径
private static String appCertPublicKey = "应用公钥证书路径";

//支付宝公钥证书路径
private static String certPublicKey = "公钥证书路径";

//支付宝根证书路径
private static String rootCert = "根证书路径";

/**
*支付宝提现功能
* @param withdrawal 支付宝转账参数实体类
* @return AlipayFundTransUniTransferResponse response
* 判断成功失败 response.isSuccess():true 成功 ,false失败
* 成功获取交易单号:
* JSONObject jsonObject = JSONObject.parseObject(response.getBody());
* String alipay_fund_trans_uni_transfer_response = jsonObject.getString("alipay_fund_trans_uni_transfer_response");
* JSONObject parseObject = JSONObject.parseObject(alipay_fund_trans_uni_transfer_response);
* 失败获取错误结果:response.getSubMsg()
* 成功获取交易单号:parseObject.getString("order_id")
*/
public static AlipayFundTransUniTransferResponse withdrawal(Withdrawal withdrawal){
AlipayFundTransUniTransferResponse response = null;
try {
//
String rootPath =AliPayWithdrawalUtil.class.getResource("/").getPath();
System.out.println("项目据对路径"+rootPath);
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
certAlipayRequest.setServerUrl( "https://openapi.alipay.com/gateway.do");
certAlipayRequest.setAppId ( appid );
certAlipayRequest.setPrivateKey ( merchantPrivateKey );
certAlipayRequest.setFormat ( "json" );
certAlipayRequest.setCharset ( "UTF-8" );
certAlipayRequest.setSignType ( "RSA2" );
certAlipayRequest.setCertPath ( rootPath+appCertPublicKey);
certAlipayRequest.setAlipayPublicCertPath ( rootPath+certPublicKey );
certAlipayRequest.setRootCertPath ( rootPath+rootCert );
DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest ();
request.setBizContent ( "{" +
"\"out_biz_no\":\""+withdrawal.getOutBizNo()+"\"," +
"\"trans_amount\":"+withdrawal.getTransAmount()+"," +
"\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," +
"\"biz_scene\":\"DIRECT_TRANSFER\"," +
"\"order_title\":\""+withdrawal.getOrderTitle()+"\"," +
"\"payee_info\":{" +
"\"identity\":\""+withdrawal.getIdentity()+"\"," +
"\"identity_type\":\"ALIPAY_USER_ID\"" +
" }," +
"\"remark\":\""+withdrawal.getRemark()+"\"," +
"\"business_params\":\"{\\\"payer_show_name\\\":\\\"云南顺路科技有限公司\\\"}\"," +
" }" );
response = alipayClient.certificateExecute ( request );
}catch (Exception e){
e.printStackTrace();
}
return response;
}



public static void main(String[] args) {
// Withdrawal withdrawal = new Withdrawal();
// withdrawal.setTransAmount(new BigDecimal("0.1"));
// withdrawal.setRemark("提现");
// withdrawal.setOutBizNo( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
// withdrawal.setOrderTitle("提现");
// withdrawal.setIdentity("2088702126358350");
// String result="";
// try {
// result = AliPayWithdrawalByOldSDKUtil.withdrawal(withdrawal);
// }catch (Exception e){
// e.printStackTrace();
// }
// System.out.println(result);
try {
System.out.println(AliPayWithdrawalUtil.class.getResource("/").getPath());
}catch (Exception e){
e.printStackTrace();
}
}
}

标签:支付宝,提现,Java,String,app,certAlipayRequest,response,withdrawal,public
来源: https://www.cnblogs.com/bxxdm/p/14119669.html