| | |
| | | package org.yeshi.utils.alipay; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alipay.api.AlipayApiException; |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.CertAlipayRequest; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.request.AlipayFundAccountQueryRequest; |
| | | import com.alipay.api.request.AlipayFundTransCommonQueryRequest; |
| | |
| | | import net.sf.json.JSONObject; |
| | | import org.yeshi.utils.StringUtil; |
| | | import org.yeshi.utils.entity.alipay.AlipayAppInfo; |
| | | import org.yeshi.utils.entity.alipay.AlipayCertInfo; |
| | | import org.yeshi.utils.entity.alipay.AlipayTransferInfo; |
| | | import org.yeshi.utils.exception.AlipayCommonException; |
| | | import org.yeshi.utils.exception.AlipayTransferException; |
| | |
| | | |
| | | public class AlipayUtil { |
| | | |
| | | public static AlipayClient getAlipayClient(AlipayAppInfo app) { |
| | | public static AlipayClient getAlipayClient(AlipayAppInfo app) throws AlipayApiException { |
| | | if (app.getCertInfo() == null) { |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", app.getAppId(), app.getPrivateKey(), "json", "GBK", app.getAlipayPublicKey(), "RSA2"); |
| | | return alipayClient; |
| | | } |
| | | |
| | | private static AlipayClient getAlipayClient(AlipayAppInfo app, AlipayCertInfo info) throws AlipayApiException { |
| | | } else { |
| | | String privateKey = app.getPrivateKey(); |
| | | MyCertAlipayRequest certAlipayRequest = new MyCertAlipayRequest(); |
| | | certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); |
| | |
| | | certAlipayRequest.setCharset("GBK"); |
| | | certAlipayRequest.setSignType("RSA2"); |
| | | certAlipayRequest.setCertStream( |
| | | info.getAppCertPublicKeyStream()); |
| | | app.getCertInfo().getAppCertPublicKeyStream()); |
| | | certAlipayRequest.setAlipayPublicCertStream( |
| | | info.getAlipayPublicCertStream()); |
| | | app.getCertInfo().getAlipayPublicCertStream()); |
| | | certAlipayRequest.setRootCertStream( |
| | | info.getAlipayRootCertStream()); |
| | | app.getCertInfo().getAlipayRootCertStream()); |
| | | return new CertAlipayClient(certAlipayRequest); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 统一转账(包含红包与转账) |
| | | * |
| | | * @param app |
| | | * @param info |
| | | * @param certInfo |
| | | * @return |
| | | * @throws AlipayApiException |
| | | * @throws NumberFormatException |
| | | * @throws AlipayTransferException |
| | | */ |
| | | public static AlipayFundTransUniTransferResponse alipayFundTransUniTransfer(AlipayAppInfo app, AlipayTransferInfo info, AlipayCertInfo certInfo) |
| | | public static AlipayFundTransUniTransferResponse alipayFundTransUniTransfer(AlipayAppInfo app, AlipayTransferInfo info) |
| | | throws AlipayApiException, NumberFormatException, AlipayTransferException { |
| | | AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest(); |
| | | com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject(); |
| | |
| | | |
| | | request.setBizContent(json.toString()); |
| | | AlipayFundTransUniTransferResponse response = null; |
| | | response = getAlipayClient(app, certInfo).certificateExecute(request); |
| | | response = getAlipayClient(app).certificateExecute(request); |
| | | // 成功转账 |
| | | if (response != null && response.isSuccess() && "10000".equals(response.getCode())) { |
| | | return response; |
| | |
| | | * @return |
| | | * @throws AlipayApiException |
| | | */ |
| | | public static AlipayFundTransCommonQueryResponse getOrderDetail(AlipayAppInfo app, AlipayCertInfo certInfo, AlipayTransferInfo.AlipayProductCodeEnum productCode, AlipayTransferInfo.AlipayBizSceneEnum bizScene, String outBizNo) throws AlipayApiException, AlipayCommonException { |
| | | AlipayClient alipayClient = getAlipayClient(app, certInfo); |
| | | public static AlipayFundTransCommonQueryResponse getOrderDetail(AlipayAppInfo app, AlipayTransferInfo.AlipayProductCodeEnum productCode, AlipayTransferInfo.AlipayBizSceneEnum bizScene, String outBizNo) throws AlipayApiException, AlipayCommonException { |
| | | AlipayClient alipayClient = getAlipayClient(app); |
| | | AlipayFundTransCommonQueryRequest request = new AlipayFundTransCommonQueryRequest(); |
| | | com.alibaba.fastjson.JSONObject content = new com.alibaba.fastjson.JSONObject(); |
| | | if (productCode != null) |
| | |
| | | * @throws AlipayApiException |
| | | * @throws AlipayCommonException |
| | | */ |
| | | public static BigDecimal getAccountBalance(AlipayAppInfo app, AlipayCertInfo certInfo, String userId) throws AlipayApiException, AlipayCommonException { |
| | | AlipayClient alipayClient = getAlipayClient(app, certInfo); |
| | | public static BigDecimal getAccountBalance(AlipayAppInfo app, String userId) throws AlipayApiException, AlipayCommonException { |
| | | AlipayClient alipayClient = getAlipayClient(app); |
| | | AlipayFundAccountQueryRequest request = new AlipayFundAccountQueryRequest(); |
| | | com.alibaba.fastjson.JSONObject content = new com.alibaba.fastjson.JSONObject(); |
| | | content.put("alipay_user_id", userId); |