|
|
|
|
@@ -1,20 +1,37 @@
|
|
|
|
|
package cn.pluss.platform.ali.impl;
|
|
|
|
|
|
|
|
|
|
import cn.pluss.platform.ali.AlipayService;
|
|
|
|
|
import cn.pluss.platform.api.Result;
|
|
|
|
|
import cn.pluss.platform.api.ResultGenerator;
|
|
|
|
|
import cn.pluss.platform.device.MercOrderNewService;
|
|
|
|
|
import cn.pluss.platform.entity.MercOrderNew;
|
|
|
|
|
import cn.pluss.platform.exception.MsgException;
|
|
|
|
|
import cn.pluss.platform.util.ParametersUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.alipay.api.CertAlipayRequest;
|
|
|
|
|
import com.alipay.api.DefaultAlipayClient;
|
|
|
|
|
import com.alipay.api.*;
|
|
|
|
|
import com.alipay.api.domain.AlipayTradeAppPayModel;
|
|
|
|
|
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
|
|
|
|
|
import com.alipay.api.request.AlipayTradeAppPayRequest;
|
|
|
|
|
import com.alipay.api.request.AlipayTradeWapPayRequest;
|
|
|
|
|
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
|
|
|
|
|
import com.alipay.api.response.AlipayTradeAppPayResponse;
|
|
|
|
|
import com.alipay.api.response.AlipayTradeWapPayResponse;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service
|
|
|
|
|
public class AlipayServiceImpl implements AlipayService {
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private MercOrderNewService mercOrderNewService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void remit(String account, String realName, String money) {
|
|
|
|
|
try {
|
|
|
|
|
@@ -35,9 +52,9 @@ public class AlipayServiceImpl implements AlipayService {
|
|
|
|
|
certAlipayRequest.setFormat("json");
|
|
|
|
|
certAlipayRequest.setCharset("UTF-8");
|
|
|
|
|
certAlipayRequest.setSignType("RSA2");
|
|
|
|
|
certAlipayRequest.setCertPath ( "/home/syb/cert/20220622/appCertPublicKey_2021003133649094.crt" );
|
|
|
|
|
certAlipayRequest.setAlipayPublicCertPath ( "/home/syb/cert/20220622/alipayCertPublicKey_RSA2.crt" );
|
|
|
|
|
certAlipayRequest.setRootCertPath ( "/home/syb/cert/20220622/alipayRootCert.crt" );
|
|
|
|
|
certAlipayRequest.setCertPath("/home/syb/cert/20220622/appCertPublicKey_2021003133649094.crt");
|
|
|
|
|
certAlipayRequest.setAlipayPublicCertPath("/home/syb/cert/20220622/alipayCertPublicKey_RSA2.crt");
|
|
|
|
|
certAlipayRequest.setRootCertPath("/home/syb/cert/20220622/alipayRootCert.crt");
|
|
|
|
|
|
|
|
|
|
// certAlipayRequest.setAppId("2021003133649094");
|
|
|
|
|
// String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDP0ky+6wTP7mTiyuA3rfUXW9kibwU3q4V8R/zWE5zGOIaMv/bQ3La/0WWUGHd9K/bsgQ6GLBE+i74QU/3RzfdrbTvrL6GrLupMxxgdiikmvkhPRwkWVPghjNmbJhG6+gva1K8BfE0QtbP3oghnBc78TSyp02aoKFIjo98+21fXUQZs8yagoZBojoQ8zcSr09TsCB4BCm+nSEhD7yEa7HyPcX+FkMtRFXt0XsxnBwV/9T95vaBNGKQoNdvY5evIVRnSInc4E4k8MU3sm+YxrPHWMKWZJn2SP/1kPXIGc/IZkf6AZGeZXMNL36kz8k6Z/1f/TsOKioHX5J498ueuc1HvAgMBAAECggEARDtKoUAuQ0qE6wUq2n0NxA6O2sRSlTWGTQihlXO4/EegvWNlWKuugInybM4fpQQjPQEeUKT1QHDHBTteUVzrR+UEUDJCRR7RJEYVv9UVr7e3q/epnyBkmzdQVqUIGzhvXfiIQNebwcm2fa5ATfrVO3bnHBbhVIJwfW0XJd8EFxfWonUDjtPfk8wTEjmNqz6vXhpk3ncV7MMY07ehbYaMA4NbbysABKRP0S9515JUX0NkBtxnhVm2ojcoc1Wjy3//TN8RXpC17E1Tyd/9pQIxmosLjS1gcX1WzphMZU0Y/74yHiE0WQCKP3J6PkdBTQDIqubyRdErJ9TYSe9+u3OZyQKBgQDrtap3LItv8IjH6O5Lg4xMU9r9dFW8QVc3dD1yn+wWq5x54mnUo5d6cTa7HqZ9SgS7gxWQZG/km9R2cJLQsATlQjdHyEoNKtqdgl3vB8MGK+Lwh6vNhE2z2svRJqQpzZfs1dKwI74mASDzwu/HjdkOFO2BVzjG3IPmrDRmN+7w8wKBgQDhthAKdbkhb7vjlgckGqDyy28QVb1YfZ4YzwW5aZiAhBmQhfZZEB5/KAYKRkToFg6Nqz6cBHwb1rH1YtOua8Dgr5XsqPQz9+MCCrUKxVt/1ziWhkpaNxEobT7QYtJiaGvuLxGP7uqpJGDpePCLHQTxmocsj8UgEE49HDj4qlO6FQKBgFGip5mC2gA5BIaITA/nTa4Z1Ny3cAI1dymDnsyWSsRHR3iHTDQTPKFxmI0SPoNiIWV4Lv3Fa2N3/QvQTWjtraRhXJgF7G/HCdRHlJT20TrP9FduBbi2O9swyip0AaNgy1+BZukOWAr9lRYXy8gHfsd7xA5p0QY+1YgM2FEWyjC1AoGBAKaSAsKFYGuRltp9BKYbVL35bexjKgodIkhyt2m+yQHG+0rR4hyWLbtvYQ3CD+YrKPBZ+SmQkbrFta0/ErL86Gmoiv8NLLMRdCE0n6jkPwNYZHWJg2OSkgIApUOKOnLPVx9+8voCuoC6zR5f1z0C3Hwkqy8ypqpj/ilRI6Y3pPSFAoGAaxBlqCUBFEhs/FnYf9neoPzx9WYDmJY7PgNgZ/s0H9vaGqyWPLWyF95/dTZ5yrBsABQyuIfDa2/m8y1YJaIJ/qU29FDq/GMv6IX4zDgm2iaWNZFnMoW7qSEkpVISSLoVxat4D556YI6FrQeoUAS+L1iEFgS33ln1tTyqb7mSe00=";
|
|
|
|
|
@@ -86,4 +103,137 @@ public class AlipayServiceImpl implements AlipayService {
|
|
|
|
|
throw new MsgException(e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Object aliPayPhone(String orderNo) {
|
|
|
|
|
MercOrderNew mercOrder = mercOrderNewService.getOrderByNo(orderNo);
|
|
|
|
|
if (mercOrder == null) {
|
|
|
|
|
throw new MsgException("订单号有误");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//app
|
|
|
|
|
mercOrder.setOrderNo(orderNo);
|
|
|
|
|
mercOrder.setOrderAmt(mercOrder.getOrderAmt());
|
|
|
|
|
mercOrder.setReceiver(mercOrder.getReceiver());
|
|
|
|
|
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", ParametersUtil.ZY_ALI_APP_ID,
|
|
|
|
|
ParametersUtil.ZY_PRI, "json", "UTF-8", ParametersUtil.ZY_PUB, "RSA2");
|
|
|
|
|
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
|
|
|
|
|
request.setNotifyUrl(ParametersUtil.domain+"/wap/merchant/aliCallBack");
|
|
|
|
|
request.setReturnUrl("");
|
|
|
|
|
JSONObject bizContent = new JSONObject();
|
|
|
|
|
bizContent.put("out_trade_no", mercOrder.getOrderNo());
|
|
|
|
|
bizContent.put("total_amount", mercOrder.getOrderAmt());
|
|
|
|
|
bizContent.put("subject", mercOrder.getReceiver());
|
|
|
|
|
|
|
|
|
|
/************/
|
|
|
|
|
|
|
|
|
|
bizContent.put("product_code", "QUICK_MSECURITY_PAY");
|
|
|
|
|
request.setBizContent(bizContent.toString());
|
|
|
|
|
AlipayTradeWapPayResponse response = null;
|
|
|
|
|
try {
|
|
|
|
|
response = response = alipayClient.sdkExecute(request);
|
|
|
|
|
} catch (AlipayApiException e) {
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (response.isSuccess()) {
|
|
|
|
|
System.out.println("success");
|
|
|
|
|
String body = response.getBody();
|
|
|
|
|
return body;
|
|
|
|
|
} else {
|
|
|
|
|
System.out.println("fail");
|
|
|
|
|
return "支付失败";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// String privateKey = ParametersUtil.ZY_PRI;
|
|
|
|
|
// String alipayPublicKey = ParametersUtil.ZY_PUB;
|
|
|
|
|
// AlipayConfig alipayConfig = new AlipayConfig();
|
|
|
|
|
// alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
|
|
|
|
|
// alipayConfig.setAppId(ParametersUtil.ZY_ALI_APP_ID);
|
|
|
|
|
// alipayConfig.setPrivateKey(privateKey);
|
|
|
|
|
// alipayConfig.setFormat("json");
|
|
|
|
|
// alipayConfig.setAlipayPublicKey(alipayPublicKey);
|
|
|
|
|
// alipayConfig.setCharset("UTF-8");
|
|
|
|
|
// alipayConfig.setSignType("RSA2");
|
|
|
|
|
// AlipayClient alipayClient = null;
|
|
|
|
|
// try {
|
|
|
|
|
// alipayClient = new DefaultAlipayClient(alipayConfig);
|
|
|
|
|
// } catch (AlipayApiException e) {
|
|
|
|
|
// throw new RuntimeException(e);
|
|
|
|
|
// }
|
|
|
|
|
// AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
|
|
|
|
|
// AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
|
|
|
|
|
// model.setOutTradeNo(mercOrder.getOrderNo());
|
|
|
|
|
// model.setTotalAmount(mercOrder.getOrderAmt().toString());
|
|
|
|
|
// model.setSubject(mercOrder.getReceiver());
|
|
|
|
|
// request.setBizModel(model);
|
|
|
|
|
// AlipayTradeAppPayResponse response = null;
|
|
|
|
|
// try {
|
|
|
|
|
// response = alipayClient.sdkExecute(request);
|
|
|
|
|
// } catch (AlipayApiException e) {
|
|
|
|
|
// throw new RuntimeException(e);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// if (response.isSuccess()) {
|
|
|
|
|
// System.out.println("调用成功");
|
|
|
|
|
// return ResultGenerator.genSuccessResult(response.getBody());
|
|
|
|
|
// } else {
|
|
|
|
|
// System.out.println("调用失败");
|
|
|
|
|
// return ResultGenerator.genFailResult("支付失败");
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String moneyForMat(BigDecimal amount) {
|
|
|
|
|
DecimalFormat formatter = new DecimalFormat("#0.00");
|
|
|
|
|
String formattedAmount = formatter.format(amount);
|
|
|
|
|
|
|
|
|
|
return formattedAmount;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) throws AlipayApiException {
|
|
|
|
|
MercOrderNew mercOrder = new MercOrderNew();
|
|
|
|
|
//// if (mercOrder == null){
|
|
|
|
|
//// throw new MsgException("订单号有误");
|
|
|
|
|
//// }
|
|
|
|
|
mercOrder.setOrderNo("b3dc8aab4f204be7b7bc6738dc91ddd2");
|
|
|
|
|
mercOrder.setOrderAmt(new BigDecimal("0.1"));
|
|
|
|
|
mercOrder.setReceiver("测测测");
|
|
|
|
|
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", "2021003175619219",
|
|
|
|
|
"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCInywsrhhiSNj7jjOB4/zL79pAaLzoYOuOqHeQELxgXrVFmpqJ7y76wniu4nrHKfp4jQVIHw4+IkBsTNwABTPiryVzAQ4ydb/opzn4zblWRB4S7mAgnc2wqO4FMcwSOiHh7uPFAqvB8oZmEizlbXIJSiDFd3rqG2l8ZADjwuwM0nue1fUJLu65d2B6NDFgBIa11enkrNyX9uPiaeIFW62lvTN1W2AUqTJLvfko5ejExGUDkie6g5W5MIvUSKfq7sDkpt5IoQCooBzjJJ/Ckfw/rJlqoPDFzUSiANBABwu0jAJ42MGYdJ8+dyDDUNla20xmMjXbRtUe5roVzJrrgMjFAgMBAAECggEAPKPx9o77sbxF2zod8JxiW57Fj+stVjOWuoZaM27KPjgrW46o42pvvsvMx0stVfNzAkkNvBpUtw167Nccm0Gz6vz0sVwZkhojqT94gs/FYN3xP1PhBPkmEDCbHWEiBEEbQu5G2O47kGV2dB3DIb53bFoju6Ixw3GRW64DmxSss2+ZsErAWPBwbxIbUDGzIxtGhuWrvWX6pSnnvs+PNNqyoisXnh4cDjrmS9qSgsgcL4D0HwNGTsG1uBeLx4g3D2vKKqhP1osEly91P0QAGzcpuvKqeJ2ZwfFMDlabeOyqRQxFW/FLT2DuY1KmBhcGx6tjDMo7EEpVJ7NHcSHYfAa6wQKBgQDzZbIAV7shEiwS6ZwLSbeMvJkWELJtmEGk/qI/01tULHmrwDh8FIjbrHZrQNXruZ+dS+RObahCKywjYVEr/g15v5vv4yA20bmUgmO27/mVj6mpwvoHYBn0H/511a6V7lopFlCA735K+liFZ6ZW+qZxV8gkZ3/ZZDUy1LSArQmg8QKBgQCPsiK+mUdvs+1ReDm09RessbastXgYvj6UWIsPHc4Mxx/6R8qgy9nt2n2u95cK2uONtpNWswpDtOeWVakuHSKHbdG7Xz0DlklHuzin2JhOBwBu36HAVDjWPF+JDcVkUz7hFWFwl0DawRijFBcr0OV6GUoUURB21xtRnrQPmK/lFQKBgHPWFE7hceedVGhz0ZX1sWtDXsAHlkNeUO+LWAB0QGTg/c7lnnw+8ZtKitkkdCrJntMniTJiMc+76De2WwFK2XL14+rY9z3ftiidnYM01l19j8uBRak47WEn0NyXo40rcLFZM1sJn9tjJbnnyFxg0dHjaxcYQtpdPIxCet06fPihAoGAfaqJ3CnsYXH3H4KG5Qxa8fpRCWWCbBEkZVOx+TxVkLMr8hOKz2i3Y93qgHOisimPS8XZwL6/QUsaJU0wsVVldw7Blp3JnDN4TrUa7R7sw4A4Dr6glLSTKDiQTCmw8PYkTXAHURHV8/le9G+DfBwqM8eeE3p5bZTdHVovmlwrp6kCgYEA7uTSOa0phZ7ts++FVdEZf9TI/B4tRuP4aT31BHs9UoCW1g01/NEEBDiHV9udq9B6Cd5onq+QFj4jiwakTNzXjhQZqgmag1TBE9VpahLxYAD5pYn/Tvm8l5vWuSKcOSwQb2lDg5R2/bmCJRV/QHRkdkAAhHGC/TrOskUCRgosUac=",
|
|
|
|
|
"json", "UTF-8", "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiQkrz+emAuS1mB3KKDOMmAZRd/BlPbh7fAIHAqAj1+QCZNcV3o2BTLIIqnuKpSlFXDG3uDzp2VsBxcizXuBbFyPGylnD9CgCj5abyh3+FIHPAZ2IM3TtpqImZ0TSPGXrMli4Nir7MvZktgccCqQKCC4o6iaDGz+UwWwJUIPna8fm2tiTZ+KH150CZbKVj4ZGNpBh5XSV/1dRgyQIV9D/EwSbkZ0n6VgKQLJBi0C2UE3QB17aL1Ir6+gDXIDbknN8O7GUD3aMGdThYdSRUb5wp9CZ5qfV7vCS/CgaRo38nhH3NOzkTL+7v0m1ZDHPmqEkn9VzZN6sCQdL7PoAOjHOCwIDAQAB", "RSA2");
|
|
|
|
|
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
|
|
|
|
|
|
|
|
|
|
JSONObject bizContent = new JSONObject();
|
|
|
|
|
bizContent.put("out_trade_no", mercOrder.getOrderNo());
|
|
|
|
|
bizContent.put("total_amount", mercOrder.getOrderAmt());
|
|
|
|
|
bizContent.put("subject", mercOrder.getReceiver());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/************/
|
|
|
|
|
|
|
|
|
|
bizContent.put("product_code", "QUICK_MSECURITY_PAY");
|
|
|
|
|
request.setBizContent(bizContent.toString());
|
|
|
|
|
AlipayTradeWapPayResponse response = null;
|
|
|
|
|
try {
|
|
|
|
|
response = alipayClient.sdkExecute(request);
|
|
|
|
|
} catch (AlipayApiException e) {
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (response.isSuccess()) {
|
|
|
|
|
System.out.println("success");
|
|
|
|
|
System.out.println(response.getBody());
|
|
|
|
|
} else {
|
|
|
|
|
System.out.println("fail");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
|
|
|
|
|
// String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
|
|
|
|
|
// System.out.println(diagnosisUrl);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|