@@ -11,7 +11,6 @@ import com.ai.da.model.dto.AlipayHKCallbackDTO;
import com.ai.da.model.dto.AlipayHKRequestDTO ;
import com.ai.da.service.* ;
import com.alibaba.fastjson.JSON ;
import com.alibaba.fastjson.JSONObject ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.beans.factory.annotation.Value ;
@@ -19,11 +18,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional ;
import javax.annotation.Resource ;
import javax.net.ssl.SSLContext ;
import javax.net.ssl.SSLSocketFactory ;
import java.time.LocalDateTime ;
import java.time.format.DateTimeFormatter ;
import java.util.Arrays ;
import java.util.HashMap ;
import java.util.Map ;
import java.util.Objects ;
@@ -80,10 +76,10 @@ public class AlipayHKServiceImpl implements AlipayHKService {
// 生成订单
log . info ( " 创建订单 " ) ;
OrderInfo orderInfo = orderInfoService . createOrderByProductId ( amount , PayTypeEnum . ALIPAY_HK . getType ( ) ) ;
// 加密
/* // 加密
AlipayHKRequestDTO alipayHKRequestDTO = alipayHKEncryptionUtil.AESCBCWithRSA(param, AlipayHKConstant.CREATE_ORDER);
// 请求Alipay服务端
String response = alipayHKRequestUtil. createOrder ( alipayHKRequestDTO) ;
String response = alipayHKRequestUtil.requestAlipayHK( alipayHKRequestDTO);
// 获取response中的加密数据
JSONObject responseObj = JSONObject.parseObject(response);
JSONObject resultObj = JSONObject.parseObject(responseObj.get("result").toString());
@@ -91,18 +87,36 @@ public class AlipayHKServiceImpl implements AlipayHKService {
String message = resultObj.get("message").toString();
// 解密
String s = alipayHKEncryptionUtil.decryptAES(message, nonce);
JSONObject jsonObject = JSONObject.parseObject(s);*/
String s = enAndDecryption ( param , AlipayHKConstant . CREATE_ORDER ) ;
JSONObject jsonObject = JSONObject . parseObject ( s ) ;
String orderId = jsonObject . get ( " out_trade_no " ) . toString ( ) ;
orderInfoService . updateOrderNoById ( orderInfo . getId ( ) , orderId ) ;
log . info ( " create_order 接口返回信息 : {} " , s ) ;
return s ;
} catch ( Exception e ) {
log . error ( " 订单创建失败 : {} " , e . getMessage ( ) ) ;
// todo 或者抛异常
return null ;
}
}
private String enAndDecryption ( HashMap < String , Object > param , String serviceName ) {
try {
// 加密
AlipayHKRequestDTO alipayHKRequestDTO = alipayHKEncryptionUtil . AESCBCWithRSA ( param , serviceName ) ;
// 请求Alipay服务端
String response = alipayHKRequestUtil . requestAlipayHK ( alipayHKRequestDTO ) ;
// 获取response中的加密数据
JSONObject responseObj = JSONObject . parseObject ( response ) ;
JSONObject resultObj = JSONObject . parseObject ( responseObj . get ( " result " ) . toString ( ) ) ;
String nonce = resultObj . get ( " nonce " ) . toString ( ) ;
String message = resultObj . get ( " message " ) . toString ( ) ;
// 解密
return alipayHKEncryptionUtil . decryptAES ( message , nonce ) ;
} catch ( Exception e ) {
log . error ( " 订单创建失败 : {} " , e . getMessage ( ) ) ;
// todo 或者抛异常
@@ -234,59 +248,15 @@ public class AlipayHKServiceImpl implements AlipayHKService {
}
}
// 查询订单详情
public String queryDetail ( String orderRef ) {
HashMap < String , Object > param = new HashMap < > ( ) ;
param . put ( " order_ref " , orderRef ) ;
String s = enAndDecryption ( param , AlipayHKConstant . ORDER_DETAILS ) ;
JSONObject jsonObject = JSONObject . parseObject ( s ) ;
log . info ( " 订单:{},状态为:{} " , orderRef , jsonObject . get ( " status " ) ) ;
public static String decrypt ( String message ) {
String text = " { \" success \" :true, \" reference_id \" : \" d4f55a35-8725-40f3-8279-37ea95837741 \" , \" result \" :{ \" nonce \" : \" tUsbfFrNWcZZYrN3dWQHNQ== \" , \" message \" : \" 6wCHtIMRXXgj0TOV7jtvCzbKc+gWEnqbgAD5pMx4sIvliL65EF+btKRheJI/0gssOj0PdwUPYLlgjTdSWQZraQLU4F05FGSYJ7lNxFZ1tXLvhUv4ukiCz0xyPJIQ5vvNH/SmQ5iIQvMO/fTg6ZiZj2I+Oahzy5h2/cXmrXBEedNFZSGIVFKMuipul3QcFEO+qQQcOHOiRDAXrhF1+qoq4GROBpcKhu5WMHxUGDHj0l/tY2Rp004FNwfArbOeR5TusgMMgm7aE8IqpFJ6w4zES1lS903fHJzFWcqKMwB9tYoxnegoHSNmOVeokgBCvLOI2uVJCWN4ZqVq1mmhoib4zVxjex+pgoMtHPvV+Gjy+IB2PA5YCid0vH9WymkBkYZIioW1KH587G3lTTEWrzTc+JWWd+yIxD1nofZxAi0t+EFOgyab2HRawdpWpkwKH5XqoZ05yj0Vl0u7nWcF4GLytC5wTWyPOU3Ua/ePlniU/z5BWZkUQGWXWSKhyEmt53mx3UUXbC6/zfk1jcbyEGHonCimmf88Xl9yE3ae02xoRsDO8bcnzCRD88UWUi3UySWNmxdYDTdWj0wCU27nmLMLjkXvesRl2CfuZbkbDxDQHHKkT1DX4XoSU+vmUmSpH7IBCHXoq+SYHfRmfDsAYv7WmiJOQeo7i3RogLnBej0bFimY5JHhWBT69FVPc0aRi19eTz9L7grjLKz92+hbb4Qj7yvb08RvMUabv1juy4YHGulE73EVoLS6+FRBdEY8ZmIFq5lQcwMKb63/v+V/63AHP+oCDMzZZ7wKmQ5+UkgKcXgxToTOzulesQXD8urGcjGUwLnJviilIQywH1XFdcnDNWv95DdOB3nQ3HorqTFC+0kZMdTCO1L7zRbZQxWoExB41wQW3CNLvEkJlpaUv5TWKkep1wcT2PKFbuSVPnFnVnxZ7qNdlVLmBzEs9nX15C61+a28gFij4wj6ed8LIJwT4KapfZAFWwl2V2KmonqiXKk60/StBK9/dWHGfZ4ysPvXBB+fxJj3hR36Vu4HceNVYg+9tf5zEJ79J664iiyEFdyKzORlXnsJF33oPKC0+cuH1qhBzyf/o6t86F4DbpMBb2xhFRt1mDgFrV40JhT+2+iLCIqUmATBYsAYZZ9XIyi3vyaRGhgdd1ND/bhddALm/GKD4AJUo8FKtdkerYSbk/TpPLhvbrEFSDpkCT+JoOLiF4EzqRwZOrQklaXBOS67aaATRBzDxKJuFSGuFAWAIdLHhXcj/wDmnh1fqj03D4NmNmVSw7wKmt1OjI9arh6Ua1Mp7+1g+NT4BEdRnPYQX3CeiyRa0RUNyWxFDYZPGGpjSVNLf0vrzRh3hLEGBUlHXCza0SWuARkGmS6YdsvJr3gt+RlxXtrnI0LC0lgi9/Vw5zM5dGYX24tUOqCEA/9/FVvVZddfimYhmP44+ST1xTDgDw0rtVZQrcQjEg4UCcFq \" }} \ n " ;
String str = " 6wCHtIMRXXgj0TOV7jtvCzbKc+gWEnqbgAD5pMx4sIvliL65EF+btKRheJI/0gssOj0PdwUPYLlgjTdSWQZraQLU4F05FGSYJ7lNxFZ1tXLvhUv4ukiCz0xyPJIQ5vvNH/SmQ5iIQvMO/fTg6ZiZj2I+Oahzy5h2/cXmrXBEedNFZSGIVFKMuipul3QcFEO+qQQcOHOiRDAXrhF1+qoq4GROBpcKhu5WMHxUGDHj0l/tY2Rp004FNwfArbOeR5TusgMMgm7aE8IqpFJ6w4zES1lS903fHJzFWcqKMwB9tYoxnegoHSNmOVeokgBCvLOI2uVJCWN4ZqVq1mmhoib4zVxjex+pgoMtHPvV+Gjy+IB2PA5YCid0vH9WymkBkYZIioW1KH587G3lTTEWrzTc+JWWd+yIxD1nofZxAi0t+EFOgyab2HRawdpWpkwKH5XqoZ05yj0Vl0u7nWcF4GLytC5wTWyPOU3Ua/ePlniU/z5BWZkUQGWXWSKhyEmt53mx3UUXbC6/zfk1jcbyEGHonCimmf88Xl9yE3ae02xoRsDO8bcnzCRD88UWUi3UySWNmxdYDTdWj0wCU27nmLMLjkXvesRl2CfuZbkbDxDQHHKkT1DX4XoSU+vmUmSpH7IBCHXoq+SYHfRmfDsAYv7WmiJOQeo7i3RogLnBej0bFimY5JHhWBT69FVPc0aRi19eTz9L7grjLKz92+hbb4Qj7yvb08RvMUabv1juy4YHGulE73EVoLS6+FRBdEY8ZmIFq5lQcwMKb63/v+V/63AHP+oCDMzZZ7wKmQ5+UkgKcXgxToTOzulesQXD8urGcjGUwLnJviilIQywH1XFdcnDNWv95DdOB3nQ3HorqTFC+0kZMdTCO1L7zRbZQxWoExB41wQW3CNLvEkJlpaUv5TWKkep1wcT2PKFbuSVPnFnVnxZ7qNdlVLmBzEs9nX15C61+a28gFij4wj6ed8LIJwT4KapfZAFWwl2V2KmonqiXKk60/StBK9/dWHGfZ4ysPvXBB+fxJj3hR36Vu4HceNVYg+9tf5zEJ79J664iiyEFdyKzORlXnsJF33oPKC0+cuH1qhBzyf/o6t86F4DbpMBb2xhFRt1mDgFrV40JhT+2+iLCIqUmATBYsAYZZ9XIyi3vyaRGhgdd1ND/bhddALm/GKD4AJUo8FKtdkerYSbk/TpPLhvbrEFSDpkCT+JoOLiF4EzqRwZOrQklaXBOS67aaATRBzDxKJuFSGuFAWAIdLHhXcj/wDmnh1fqj03D4NmNmVSw7wKmt1OjI9arh6Ua1Mp7+1g+NT4BEdRnPYQX3CeiyRa0RUNyWxFDYZPGGpjSVNLf0vrzRh3hLEGBUlHXCza0SWuARkGmS6YdsvJr3gt+RlxXtrnI0LC0lgi9/Vw5zM5dGYX24tUOqCEA/9/FVvVZddfimYhmP44+ST1xTDgDw0rtVZQrcQjEg4UCcFq " ;
try {
// String s = decryptAES(str, "tUsbfFrNWcZZYrN3dWQHNQ==");
// log.info(s);
} catch ( Exception e ) {
throw new RuntimeException ( e ) ;
}
return null ;
}
// public static void main(String[] args) throws Exception {
//// test();
//// AESCBCWithRSA();
//// decrypt();
// }
public static void main ( String [ ] args ) {
System . out . println ( " Supported TLS versions: " ) ;
String [ ] tlsVersions = getSupportedTLSVersions ( ) ;
Arrays . stream ( tlsVersions ) . forEach ( System . out : : println ) ;
}
public static String [ ] getSupportedTLSVersions ( ) {
try {
SSLContext context = SSLContext . getDefault ( ) ;
SSLSocketFactory factory = context . getSocketFactory ( ) ;
String [ ] supportedProtocols = factory . getDefaultCipherSuites ( ) ;
return supportedProtocols ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
return new String [ 0 ] ;
}
return s ;
}