From ec72877815d4b436cc3d1230047acc710ec14156 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 01 Mar 2024 17:06:06 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/pay/service/impl/NBYHServiceImpl.java | 411 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 288 insertions(+), 123 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/NBYHServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/NBYHServiceImpl.java
index dfa6446..674137a 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/NBYHServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/NBYHServiceImpl.java
@@ -1,25 +1,25 @@
package cc.mrbird.febs.pay.service.impl;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallMemberBank;
import cc.mrbird.febs.mall.entity.MallMemberWithdraw;
import cc.mrbird.febs.mall.entity.MallMemberWithdrawMsg;
-import cc.mrbird.febs.mall.mapper.MallMemberBankMapper;
-import cc.mrbird.febs.mall.mapper.MallMemberWithdrawMapper;
-import cc.mrbird.febs.mall.mapper.MallMemberWithdrawMsgMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cc.mrbird.febs.mall.mapper.*;
+import cc.mrbird.febs.pay.model.NBYHResponse;
import cc.mrbird.febs.pay.service.NBYHService;
import cn.hutool.core.util.ObjectUtil;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.io.*;
import java.math.BigDecimal;
-import java.net.HttpURLConnection;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.URL;
+import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@@ -27,6 +27,7 @@
@Slf4j
@Service
+@RequiredArgsConstructor
public class NBYHServiceImpl implements NBYHService {
/**
* 登录报文原文
@@ -35,9 +36,12 @@
/**
* 转账报文原文
*/
+ private static final String ACCOUNT_MESSAGE_SEARCH = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><ZHHA>${ZHHA}</ZHHA></ReqParam></opReq>";
private static final String TRADE_MESSAGE_SEARCH = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><JYXH>${serialNoOld}</JYXH></ReqParam></opReq>";
- private static final String TRADE_MESSAGE_SINGLE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>82260120102022631</FKZH><SKZH>78040122000059277</SKZH><SKHM>792311957</SKHM><JYJE>0.01</JYJE><YOTU>银企接口测试</YOTU></ReqParam></opReq>";
- private static final String TRADE_MESSAGE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>${FKZH}</FKZH><SKZH>${SKZH}</SKZH><SKHM>${SKHM}</SKHM><SKYH>${SKYH}</SKYH><SKSH>${SKSH}</SKSH><SKSI>${SKSI}</SKSI><JYJE>${JYJE}</JYJE><YOTU>${YOTU}</YOTU><SKHH>${SKHH}</SKHH></ReqParam></opReq>";
+ private static final String TRADE_MESSAGE_SINGLE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>${FKZH}</FKZH><SKZH>${SKZH}</SKZH><SKHM>${SKHM}</SKHM><JYJE>${JYJE}</JYJE><YOTU>${YOTU}</YOTU></ReqParam></opReq>";
+// private static final String TRADE_MESSAGE_SINGLE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>82260120102022631</FKZH><SKZH>78040122000059277</SKZH><SKHM>792311957</SKHM><JYJE>0.01</JYJE><YOTU>银企接口测试</YOTU></ReqParam></opReq>";
+// private static final String TRADE_MESSAGE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>${FKZH}</FKZH><SKZH>${SKZH}</SKZH><SKHM>${SKHM}</SKHM><SKYH>${SKYH}</SKYH><SKSH>${SKSH}</SKSH><SKSI>${SKSI}</SKSI><JYJE>${JYJE}</JYJE><YOTU>${YOTU}</YOTU><SKHH>${SKHH}</SKHH></ReqParam></opReq>";
+ private static final String TRADE_MESSAGE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>${FKZH}</FKZH><SKZH>${SKZH}</SKZH><SKHM>${SKHM}</SKHM><SKYH>${SKYH}</SKYH><SKSH>${SKSH}</SKSH><SKSI>${SKSI}</SKSI><JYJE>${JYJE}</JYJE><YOTU>${YOTU}</YOTU></ReqParam></opReq>";
// private static final String TRADE_MESSAGE = "<opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>82260120102022631</FKZH><SKZH>6228481060643871117</SKZH><SKHM>王苏平</SKHM><SKYH>中国农业银行舟山市定海支行营业中心</SKYH><SKSH>浙江省</SKSH><SKSI>舟山市</SKSI><JYJE>0.01</JYJE><BIZH>01</BIZH><ZZLX>02</ZZLX><ZZLB>0</ZZLB><YOTU>银企接口测试</YOTU><SKHH>103342040518</SKHH></ReqParam></opReq>";
/**
*
@@ -106,11 +110,15 @@
/**
* 接收报文url
*/
- private static final String URL = "http://127.0.0.1:9080/directlink/httpAccess";
+// private static final String URL = "http://127.0.0.1:9080/directlink/httpAccess";
+ private static final String URL = "http://n5z7ej.natappfree.cc/directlink/httpAccess";
+
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
/**
* 签名ip
*/
- private static final String VERIFY_IP = "127.0.0.1";
+// private static final String VERIFY_IP = "127.0.0.1";
+ private static final String VERIFY_IP = "server.natappfree.cc";
/**
* 付款账号
*/
@@ -118,14 +126,15 @@
/**
* 签名端口
*/
- private static final int VERIFY_PORT = 8010;
+ private static final int VERIFY_PORT = 39296;
+// private static final int VERIFY_PORT = 8010;
/**
* cookies
*/
private static String cookies = null;
/**
- * sessionId
+ * sessionIdhttp://1d6d-220-168-79-89.ngrok.io
*/
private static String sessionId = "-1";
/**
@@ -147,10 +156,16 @@
public static void main(String[] args) {
try {
+
+
+
+ InetAddress addr = InetAddress.getByName(VERIFY_IP);
+ Socket socket = new Socket(addr, VERIFY_PORT);
+
+ System.out.println("发送登录请求:"+addr);
+ System.out.println("发送登录请求:"+socket.getKeepAlive());
// System.out.println("发送登录请求:");
// test.executeServerHttpService("srv001_signOn");
-// System.out.println("\n发送转账结果查询请求:");
-// executeServerHttpService("srv008_transferResultInfoQuery","转账结果查询","2023032910585227466");
// System.out.println("\n发送跨行转账请求:");
// test.executeServerHttpService("srv007_singleOuterTransfer","跨行转账",null);
// System.out.println("\n发送行内转账请求:");
@@ -161,25 +176,54 @@
}
- @Autowired
+ @Resource
private MallMemberWithdrawMapper mallMemberWithdrawMapper;
- @Autowired
+ @Resource
private MallMemberWithdrawMsgMapper mallMemberWithdrawMsgMapper;
- @Autowired
+ @Resource
private MallMemberBankMapper mallMemberBankMapper;
@Override
- public boolean tradeSinge(Long id) {
+ public NBYHResponse tradeSinge(Long id) {
+ /**
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <NBCBEBankData>
+ * <sessionId>-1</sessionId>
+ * <serviceId>srv006_singleInnerTransfer</serviceId>
+ * <customerId>0000005332</customerId>
+ * <softwareId>002</softwareId>
+ * <functionId>srv006</functionId>
+ * <functionName>行内转账</functionName>
+ * <opReq><serialNo>W2023042417134405086</serialNo>
+ * <reqTime>20230424174016</reqTime>
+ * <ReqParam>
+ * <FKZH>82260120102022631</FKZH>
+ * <SKZH>78040122000059277</SKZH>
+ * <SKHM>792311957</SKHM>
+ * <JYJE>1.00</JYJE>
+ * <YOTU>行内转账</YOTU>
+ * </ReqParam>
+ * </opReq>
+ * <signData>MIIEzQYKKoEcz1UGAQQCAqCCBL0wggS5AgEBMQ4wDAYIKoEcz1UBgxEFADCB+AYKKoEcz1UGAQQCAaCB6QSB5jxvcFJlcT48c2VyaWFsTm8+VzIwMjMwNDI0MTcxMzQ0MDUwODY8L3NlcmlhbE5vPjxyZXFUaW1lPjIwMjMwNDI0MTc0MDE2PC9yZXFUaW1lPjxSZXFQYXJhbT48RktaSD44MjI2MDEyMDEwMjAyMjYzMTwvRktaSD48U0taSD43ODA0MDEyMjAwMDA1OTI3NzwvU0taSD48U0tITT43OTIzMTE5NTc8L1NLSE0+PEpZSkU+MS4wMDwvSllKRT48WU9UVT7Q0MTa16rVyzwvWU9UVT48L1JlcVBhcmFtPjwvb3BSZXE+oIIC0TCCAs0wggJxoAMCAQICBRBVc1EWMAwGCCqBHM9VAYN1BQAwXDELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEbMBkGA1UEAwwSQ0ZDQSBURVNUIFNNMiBPQ0ExMB4XDTIzMDMwOTAyNTUzM1oXDTI1MDMwOTAyNTUzM1owcjELMAkGA1UEBhMCQ04xDDAKBgNVBAoMA0JPQzETMBEGA1UECwwKQ0ZDQVRlY2hURTEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMjElMCMGA1UEAwwcQ0ZDQVRlY2hURUB0ZXN0cWl5ZUBaMTExMTFAMTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABPHX9dm+K8G4WGe2uAHWZKI0aJgmHQfcTyK6jxKvEC5ADcptfpbe2u0cgSwBXFsyAuXY/6wq2vm1wyzmKqGCikGjggEGMIIBAjAfBgNVHSMEGDAWgBRr/hjaj0I6prhtsy6Igzo0osEw4TAMBgNVHRMBAf8EAjAAMEgGA1UdIARBMD8wPQYIYIEchu8qAQEwMTAvBggrBgEFBQcCARYjaHR0cDovL3d3dy5jZmNhLmNvbS5jbi91cy91cy0xNC5odG0wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3VjcmwuY2ZjYS5jb20uY24vU00yL2NybDQ3MDc2LmNybDAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFEr8/JLNuSXaME4XwdfG4VbI1nppMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0gAMEUCIDO8ojBrfnfn1xqHqLovnTRUmSfwmKBPHSCjIf7DBQUzAiEAnGcbKMqUfYj+35WqRfZrb9u34IcgYg0sOc9l/TKHol0xgdMwgdACAQEwZTBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIFRFU1QgU00yIE9DQTECBRBVc1EWMAwGCCqBHM9VAYMRBQAwDQYJKoEcz1UBgi0BBQAERzBFAiEAhXpldulA3eL7gbu97bo7BFKDf+AJk2OUoNcU88pbb3ICIEwlp1PJ43Lj2frEIBp9HKiyaX/wQBDOasfOk5Kk39KC</signData>
+ * </NBCBEBankData>
+ */
+ NBYHResponse nbyhResponse = new NBYHResponse();
boolean flag = false;
MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(mallMemberWithdraw.getWtihdrawTypeId());
try {
String requestDataForWithDraw = getRequestDataForWithDraw("srv006_singleInnerTransfer", "行内转账", mallMemberWithdraw, mallMemberBank);
String responseStr = executeServerHttpService(requestDataForWithDraw);
+ errorMessage = responseStr.substring(responseStr.indexOf("<errorMsg>") + 10,
+ responseStr.indexOf("</errorMsg>"));
+
+ String SBYYStr = responseStr.substring(responseStr.indexOf("<SBYY>") + 6,
+ responseStr.indexOf("</SBYY>"));
+ nbyhResponse.setMsg(errorMessage+SBYYStr);
boolean b = parseReturnValueForTrade(responseStr);
if(b){
//插入一条记录
- MallMemberWithdrawMsg mallMemberWithdrawMsg = mallMemberWithdrawMapper.selectMsgByWithdrawNo(mallMemberWithdraw.getWithdrawNo());
+ MallMemberWithdrawMsg mallMemberWithdrawMsg = mallMemberWithdrawMapper.selectMsgByWithdrawNo(mallMemberWithdraw.getId());
if(ObjectUtil.isEmpty(mallMemberWithdrawMsg)){
MallMemberWithdrawMsg mallMemberWithdrawMsg1 = new MallMemberWithdrawMsg();
mallMemberWithdrawMsg1.setWithdrawNo(mallMemberWithdraw.getWithdrawNo());
@@ -194,21 +238,32 @@
} catch (Exception e) {
e.printStackTrace();
}
- return flag;
+
+ nbyhResponse.setFlag(flag);
+ return nbyhResponse;
}
@Override
- public boolean tradeSingeOuterTransfer(Long id) {
+ public NBYHResponse tradeSingeOuterTransfer(Long id) {
+
+ NBYHResponse nbyhResponse = new NBYHResponse();
boolean flag = false;
MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(mallMemberWithdraw.getWtihdrawTypeId());
try {
String requestDataForWithDraw = getRequestDataForWithDraw("srv007_singleOuterTransfer", "跨行汇款", mallMemberWithdraw, mallMemberBank);
String responseStr = executeServerHttpService(requestDataForWithDraw);
+
+ errorMessage = responseStr.substring(responseStr.indexOf("<errorMsg>") + 10,
+ responseStr.indexOf("</errorMsg>"));
+
+ String SBYYStr = responseStr.substring(responseStr.indexOf("<SBYY>") + 6,
+ responseStr.indexOf("</SBYY>"));
+ nbyhResponse.setMsg(errorMessage+SBYYStr);
boolean b = parseReturnValueForTrade(responseStr);
if(b){
//插入一条记录
- MallMemberWithdrawMsg mallMemberWithdrawMsg = mallMemberWithdrawMapper.selectMsgByWithdrawNo(mallMemberWithdraw.getWithdrawNo());
+ MallMemberWithdrawMsg mallMemberWithdrawMsg = mallMemberWithdrawMapper.selectMsgByWithdrawNo(mallMemberWithdraw.getId());
if(ObjectUtil.isEmpty(mallMemberWithdrawMsg)){
MallMemberWithdrawMsg mallMemberWithdrawMsg1 = new MallMemberWithdrawMsg();
mallMemberWithdrawMsg1.setWithdrawNo(mallMemberWithdraw.getWithdrawNo());
@@ -223,35 +278,99 @@
} catch (Exception e) {
e.printStackTrace();
}
- return flag;
+
+ nbyhResponse.setFlag(flag);
+ return nbyhResponse;
}
@Override
- public void transferResultInfoQuery(String withdrawNo) {
- MallMemberWithdrawMsg mallMemberWithdrawMsg = mallMemberWithdrawMapper.selectMsgByWithdrawNo(withdrawNo);
- if(ObjectUtil.isEmpty(mallMemberWithdrawMsg)){
- return;
- }
- Integer status = mallMemberWithdrawMsg.getStatus();
- if(1 == status){
- return;
- }
- MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(mallMemberWithdrawMsg.getWithdrawId());
+ public NBYHResponse transferResultInfoQuery(Long id) {
+ /**
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <NBCBEBankData>
+ * <sessionId>-1</sessionId>
+ * <serviceId>srv008_transferResultInfoQuery</serviceId>
+ * <customerId>0000005332</customerId>
+ * <softwareId>002</softwareId>
+ * <functionId>srv008</functionId>
+ * <functionName>转账结果查询</functionName>
+ * <opReq>
+ * <serialNo>W2023042417134405087</serialNo>
+ * <reqTime>20230424180506</reqTime>
+ * <ReqParam>
+ * <JYXH>W2023042417134405087</JYXH>
+ * </ReqParam>
+ * </opReq>
+ * <signData>MIIEdwYKKoEcz1UGAQQCAqCCBGcwggRjAgEBMQ4wDAYIKoEcz1UBgxEFADCBoQYKKoEcz1UGAQQCAaCBkgSBjzxvcFJlcT48c2VyaWFsTm8+VzIwMjMwNDI0MTcxMzQ0MDUwODc8L3NlcmlhbE5vPjxyZXFUaW1lPjIwMjMwNDI0MTgwNTA2PC9yZXFUaW1lPjxSZXFQYXJhbT48SllYSD5XMjAyMzA0MjQxNzEzNDQwNTA4NzwvSllYSD48L1JlcVBhcmFtPjwvb3BSZXE+oIIC0TCCAs0wggJxoAMCAQICBRBVc1EWMAwGCCqBHM9VAYN1BQAwXDELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEbMBkGA1UEAwwSQ0ZDQSBURVNUIFNNMiBPQ0ExMB4XDTIzMDMwOTAyNTUzM1oXDTI1MDMwOTAyNTUzM1owcjELMAkGA1UEBhMCQ04xDDAKBgNVBAoMA0JPQzETMBEGA1UECwwKQ0ZDQVRlY2hURTEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMjElMCMGA1UEAwwcQ0ZDQVRlY2hURUB0ZXN0cWl5ZUBaMTExMTFAMTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABPHX9dm+K8G4WGe2uAHWZKI0aJgmHQfcTyK6jxKvEC5ADcptfpbe2u0cgSwBXFsyAuXY/6wq2vm1wyzmKqGCikGjggEGMIIBAjAfBgNVHSMEGDAWgBRr/hjaj0I6prhtsy6Igzo0osEw4TAMBgNVHRMBAf8EAjAAMEgGA1UdIARBMD8wPQYIYIEchu8qAQEwMTAvBggrBgEFBQcCARYjaHR0cDovL3d3dy5jZmNhLmNvbS5jbi91cy91cy0xNC5odG0wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3VjcmwuY2ZjYS5jb20uY24vU00yL2NybDQ3MDc2LmNybDAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFEr8/JLNuSXaME4XwdfG4VbI1nppMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0gAMEUCIDO8ojBrfnfn1xqHqLovnTRUmSfwmKBPHSCjIf7DBQUzAiEAnGcbKMqUfYj+35WqRfZrb9u34IcgYg0sOc9l/TKHol0xgdQwgdECAQEwZTBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIFRFU1QgU00yIE9DQTECBRBVc1EWMAwGCCqBHM9VAYMRBQAwDQYJKoEcz1UBgi0BBQAESDBGAiEAohIVn9P6WRg+ZdOzqgqKs38tRhG13f3jv1EEp9CQn+0CIQC//I83nEjczU5TgF273KCuCILgzUodySc3osMUyuEiGw==</signData>
+ * </NBCBEBankData>
+ */
+ NBYHResponse nbyhResponse = new NBYHResponse();
+ boolean flag = false;
+ MallMemberWithdrawMsg mallMemberWithdrawMsg = mallMemberWithdrawMapper.selectMsgByWithdrawNo(id);
+// if(ObjectUtil.isNotEmpty(mallMemberWithdrawMsg)){
+// Integer status = mallMemberWithdrawMsg.getStatus();
+// if(1 == status){
+// nbyhResponse.setFlag(flag);
+// return nbyhResponse;
+// }
+// }
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(mallMemberWithdraw.getWtihdrawTypeId());
try {
String requestDataForWithDraw = getRequestDataForWithDraw("srv008_transferResultInfoQuery", "转账结果查询", mallMemberWithdraw, mallMemberBank);
String responseStr = executeServerHttpService(requestDataForWithDraw);
+
+ errorMessage = responseStr.substring(responseStr.indexOf("<errorMsg>") + 10,
+ responseStr.indexOf("</errorMsg>"));
+
+ String SBYYStr = responseStr.substring(responseStr.indexOf("<SBYY>") + 6,
+ responseStr.indexOf("</SBYY>"));
+ nbyhResponse.setMsg(errorMessage+SBYYStr);
boolean b = parseReturnValue(responseStr);
if(b){
- mallMemberWithdrawMsg.setStatus(1);
- mallMemberWithdrawMsgMapper.updateById(mallMemberWithdrawMsg);
+ if(ObjectUtil.isNotEmpty(mallMemberWithdrawMsg)){
+ mallMemberWithdrawMsg.setStatus(1);
+ mallMemberWithdrawMsgMapper.updateById(mallMemberWithdrawMsg);
+ }
+ flag = true;
}
- return;
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
+
+ nbyhResponse.setFlag(flag);
+ return nbyhResponse;
+ }
+
+ @Override
+ public boolean accountInfoQuery(Long id) {
+ boolean flag = false;
+ MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id);
+ try {
+ String requestDataForWithDraw = getRequestDataForWithDraw("srv003_singleAccountInfoQuery", "账户余额及基本信息查询", mallMemberWithdraw, null);
+ String responseStr = executeServerHttpService(requestDataForWithDraw);
+
+ String stateStr = responseStr.substring(responseStr.indexOf("<state>") + 7,
+ responseStr.indexOf("</state>"));
+ String KYERStr = responseStr.substring(responseStr.indexOf("<KYER>") + 6,
+ responseStr.indexOf("</KYER>"));
+ BigDecimal amount = BigDecimal.ZERO;
+ if(mallMemberWithdraw.getRemark().equals("凭证提现")){
+ amount = mallMemberWithdraw.getAmount().setScale(2, BigDecimal.ROUND_DOWN);
+ }else{
+ amount = mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN);
+ }
+ if(stateStr.equals("0") && new BigDecimal(KYERStr).compareTo(amount) >= 0){
+ flag = true;
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return flag;
}
/**
@@ -260,10 +379,19 @@
* @throws Exception
*/
@SuppressWarnings("rawtypes")
- public static String executeServerHttpService(String requestData) throws Exception {
+ public String executeServerHttpService(String requestData) throws Exception {
// public static void executeServerHttpService(String serviceId, String serviceName, String serialNo,String requestData) throws Exception {
// 处理交易的url
- java.net.URL url = new URL(URL);
+ DataDictionaryCustom urlDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.BANK_TRANS_URL.getType(),
+ DataDictionaryEnum.BANK_TRANS_URL.getCode()
+ );
+ StringBuffer urlSb = new StringBuffer();
+ urlSb.append("http://");
+ urlSb.append(urlDic.getValue());
+ urlSb.append("/directlink/httpAccess");
+ java.net.URL url = new URL(urlSb.toString());
+// java.net.URL url = new URL(URL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
if (cookies != null) {
// 如果已登录,设置coikie
@@ -316,80 +444,80 @@
* @throws FileNotFoundException
* @throws IOException
*/
- public static String getRequestData(String serviceId, String serviceName, String serialNo)
- throws FileNotFoundException, IOException {
- StringBuffer buf = new StringBuffer();
- // 报文编码格式utf-8
- buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><NBCBEBankData>");
- buf.append("<sessionId>");
- buf.append(sessionId);
- buf.append("</sessionId>");
- buf.append("<serviceId>");
- buf.append(serviceId);
- buf.append("</serviceId>");
- String reqData = "";
- if (serviceId.equals("srv001_signOn")) {
- reqData = SIGN_MESSAGE;
- } else if (serviceId.equals("srv006_singleInnerTransfer")) {
- reqData = TRADE_MESSAGE_SINGLE;
- /**
- * <opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>82260120102022631</FKZH><SKZH>78040122000059277</SKZH><SKHM>792311957</SKHM><JYJE>0.01</JYJE><YOTU>银企接口测试</YOTU></ReqParam></opReq>
- * <opReq>
- * <serialNo>${serialNo}</serialNo>
- * <reqTime>${reqTime}</reqTime>
- * <ReqParam>
- * <FKZH>${FKZH}</FKZH>
- * <SKZH>${SKZH}</SKZH>
- * <SKHM>${SKHM}</SKHM>
- * <JYJE>${JYJE}</JYJE>
- * <YOTU>${YOTU}</YOTU>
- * </ReqParam>
- * </opReq>
- */
- reqData = reqData.replaceFirst("\\$\\{FKZH\\}", serialNo);
- reqData = reqData.replaceFirst("\\$\\{SKZH\\}", serialNo);
- reqData = reqData.replaceFirst("\\$\\{SKHM\\}", serialNo);
- reqData = reqData.replaceFirst("\\$\\{JYJE\\}", serialNo);
- reqData = reqData.replaceFirst("\\$\\{YOTU\\}", serialNo);
- }else if (serviceId.equals("srv007_singleOuterTransfer")) {
- reqData = TRADE_MESSAGE;
- }else if (serviceId.equals("srv008_transferResultInfoQuery")) {
- reqData = TRADE_MESSAGE_SEARCH;
- //原订单流水号
- reqData = reqData.replaceFirst("\\$\\{serialNoOld\\}", serialNo);
- }
-// String serialNo = String.valueOf(Math.round(Math.random() * 10000))
-// + System.currentTimeMillis();
- Calendar calendar = Calendar.getInstance();
- Date date = calendar.getTime();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-
- String reqTime = sdf.format(date);
- reqData = reqData.replaceFirst("\\$\\{serialNo\\}", serialNo);
- reqData = reqData.replaceFirst("\\$\\{reqTime\\}", reqTime);
- String signData = null;
- try {
- signData = signData(reqData);
- signData = getNodeValue(signData, "signed_data");
- } catch (Exception e) {
- e.printStackTrace();
- }
- buf.append("<customerId>");
- buf.append(customerId);
- buf.append("</customerId>");
- buf.append("<softwareId>");
- buf.append(softwareId);
- buf.append("</softwareId>");
- buf.append("<functionId>");
- buf.append(serviceId.substring(0, 6));
- buf.append("</functionId>");
- buf.append("<functionName>");
- buf.append(serviceName);
- buf.append("</functionName>");
- buf.append(reqData + "<signData>" + signData
- + "</signData></NBCBEBankData>");
- return buf.toString();
- }
+// public static String getRequestData(String serviceId, String serviceName, String serialNo)
+// throws FileNotFoundException, IOException {
+// StringBuffer buf = new StringBuffer();
+// // 报文编码格式utf-8
+// buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><NBCBEBankData>");
+// buf.append("<sessionId>");
+// buf.append(sessionId);
+// buf.append("</sessionId>");
+// buf.append("<serviceId>");
+// buf.append(serviceId);
+// buf.append("</serviceId>");
+// String reqData = "";
+// if (serviceId.equals("srv001_signOn")) {
+// reqData = SIGN_MESSAGE;
+// } else if (serviceId.equals("srv006_singleInnerTransfer")) {
+// reqData = TRADE_MESSAGE_SINGLE;
+// /**
+// * <opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><FKZH>82260120102022631</FKZH><SKZH>78040122000059277</SKZH><SKHM>792311957</SKHM><JYJE>0.01</JYJE><YOTU>银企接口测试</YOTU></ReqParam></opReq>
+// * <opReq>
+// * <serialNo>${serialNo}</serialNo>
+// * <reqTime>${reqTime}</reqTime>
+// * <ReqParam>
+// * <FKZH>${FKZH}</FKZH>
+// * <SKZH>${SKZH}</SKZH>
+// * <SKHM>${SKHM}</SKHM>
+// * <JYJE>${JYJE}</JYJE>
+// * <YOTU>${YOTU}</YOTU>
+// * </ReqParam>
+// * </opReq>
+// */
+// reqData = reqData.replaceFirst("\\$\\{FKZH\\}", serialNo);
+// reqData = reqData.replaceFirst("\\$\\{SKZH\\}", serialNo);
+// reqData = reqData.replaceFirst("\\$\\{SKHM\\}", serialNo);
+// reqData = reqData.replaceFirst("\\$\\{JYJE\\}", serialNo);
+// reqData = reqData.replaceFirst("\\$\\{YOTU\\}", serialNo);
+// }else if (serviceId.equals("srv007_singleOuterTransfer")) {
+// reqData = TRADE_MESSAGE;
+// }else if (serviceId.equals("srv008_transferResultInfoQuery")) {
+// reqData = TRADE_MESSAGE_SEARCH;
+// //原订单流水号
+// reqData = reqData.replaceFirst("\\$\\{serialNoOld\\}", serialNo);
+// }
+//// String serialNo = String.valueOf(Math.round(Math.random() * 10000))
+//// + System.currentTimeMillis();
+// Calendar calendar = Calendar.getInstance();
+// Date date = calendar.getTime();
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+//
+// String reqTime = sdf.format(date);
+// reqData = reqData.replaceFirst("\\$\\{serialNo\\}", serialNo);
+// reqData = reqData.replaceFirst("\\$\\{reqTime\\}", reqTime);
+// String signData = null;
+// try {
+// signData = signData(reqData);
+// signData = getNodeValue(signData, "signed_data");
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// buf.append("<customerId>");
+// buf.append(customerId);
+// buf.append("</customerId>");
+// buf.append("<softwareId>");
+// buf.append(softwareId);
+// buf.append("</softwareId>");
+// buf.append("<functionId>");
+// buf.append(serviceId.substring(0, 6));
+// buf.append("</functionId>");
+// buf.append("<functionName>");
+// buf.append(serviceName);
+// buf.append("</functionName>");
+// buf.append(reqData + "<signData>" + signData
+// + "</signData></NBCBEBankData>");
+// return buf.toString();
+// }
/**
* 组装完整的报文
*
@@ -398,7 +526,7 @@
* @throws FileNotFoundException
* @throws IOException
*/
- public static String getRequestDataForWithDraw(String serviceId, String serviceName,MallMemberWithdraw mallMemberWithdraw,MallMemberBank mallMemberBank)
+ public String getRequestDataForWithDraw(String serviceId, String serviceName,MallMemberWithdraw mallMemberWithdraw,MallMemberBank mallMemberBank)
throws FileNotFoundException, IOException {
StringBuffer buf = new StringBuffer();
// 报文编码格式utf-8
@@ -410,6 +538,18 @@
buf.append(serviceId);
buf.append("</serviceId>");
String reqData = "";
+ DataDictionaryCustom fkzhDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.BANK_TRANS_FKZH.getType(),
+ DataDictionaryEnum.BANK_TRANS_FKZH.getCode()
+ );
+ DataDictionaryCustom customerIdDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.BANK_TRANS_customerId.getType(),
+ DataDictionaryEnum.BANK_TRANS_customerId.getCode()
+ );
+ DataDictionaryCustom softwareIdDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.BANK_TRANS_softwareId.getType(),
+ DataDictionaryEnum.BANK_TRANS_softwareId.getCode()
+ );
if (serviceId.equals("srv001_signOn")) {
reqData = SIGN_MESSAGE;
} else if (serviceId.equals("srv006_singleInnerTransfer")) {
@@ -427,8 +567,9 @@
* <YOTU>${YOTU}</YOTU>
* </ReqParam>
* </opReq>
+ * *
*/
- reqData = reqData.replaceFirst("\\$\\{FKZH\\}", FKZH);
+ reqData = reqData.replaceFirst("\\$\\{FKZH\\}", fkzhDic.getValue());
reqData = reqData.replaceFirst("\\$\\{SKZH\\}", mallMemberBank.getBankNo());
reqData = reqData.replaceFirst("\\$\\{SKHM\\}", mallMemberBank.getName());
if(mallMemberWithdraw.getRemark().equals("凭证提现")){
@@ -463,7 +604,7 @@
*/
reqData = TRADE_MESSAGE;
- reqData = reqData.replaceFirst("\\$\\{FKZH\\}", FKZH);
+ reqData = reqData.replaceFirst("\\$\\{FKZH\\}", fkzhDic.getValue());
reqData = reqData.replaceFirst("\\$\\{SKZH\\}", mallMemberBank.getBankNo());
reqData = reqData.replaceFirst("\\$\\{SKHM\\}", mallMemberBank.getName());
reqData = reqData.replaceFirst("\\$\\{SKYH\\}", mallMemberBank.getBankName()+mallMemberBank.getSubbranchName());
@@ -477,11 +618,25 @@
mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN).toString());
}
reqData = reqData.replaceFirst("\\$\\{YOTU\\}", "跨行汇款");
- reqData = reqData.replaceFirst("\\$\\{SKHH\\}", mallMemberBank.getSkhh());
+// reqData = reqData.replaceFirst("\\$\\{SKHH\\}", mallMemberBank.getSkhh());
}else if (serviceId.equals("srv008_transferResultInfoQuery")) {
reqData = TRADE_MESSAGE_SEARCH;
//原订单流水号
reqData = reqData.replaceFirst("\\$\\{serialNoOld\\}", mallMemberWithdraw.getWithdrawNo());
+ }else if (serviceId.equals("srv003_singleAccountInfoQuery")) {
+ reqData = ACCOUNT_MESSAGE_SEARCH;
+ /**
+ * <opReq>
+ * <serialNo>${serialNo}</serialNo>
+ * <reqTime>${reqTime}</reqTime>
+ * <ReqParam>
+ * <ZHHA>${ZHHA}</ZHHA>
+ * </ReqParam>
+ * </opReq>
+ * <opReq><serialNo>${serialNo}</serialNo><reqTime>${reqTime}</reqTime><ReqParam><ZHHA>${ZHHA}</ZHHA></ReqParam></opReq>
+ */
+ //原订单流水号
+ reqData = reqData.replaceFirst("\\$\\{ZHHA\\}", fkzhDic.getValue());
}
// String serialNo = String.valueOf(Math.round(Math.random() * 10000))
// + System.currentTimeMillis();
@@ -500,10 +655,10 @@
e.printStackTrace();
}
buf.append("<customerId>");
- buf.append(customerId);
+ buf.append(customerIdDic.getValue());
buf.append("</customerId>");
buf.append("<softwareId>");
- buf.append(softwareId);
+ buf.append(softwareIdDic.getValue());
buf.append("</softwareId>");
buf.append("<functionId>");
buf.append(serviceId.substring(0, 6));
@@ -530,7 +685,7 @@
* @return
* @throws UnsupportedEncodingException
*/
- public static String signData(String orignalData)
+ public String signData(String orignalData)
throws UnsupportedEncodingException {
InetAddress addr = null;
Socket socket = null;
@@ -542,9 +697,19 @@
+ "<origin_data_len>" + orignalData.getBytes("GBK").length
+ "</origin_data_len>\n" + "<origin_data>" + orignalData
+ "</origin_data>\n" + "</msg_body>\n" + "</msg>";
+
+ DataDictionaryCustom VERIFY_IPDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.BANK_TRANS_VERIFY_IP.getType(),
+ DataDictionaryEnum.BANK_TRANS_VERIFY_IP.getCode()
+ );DataDictionaryCustom VERIFY_PORT_Dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.BANK_TRANS_VERIFY_PORT.getType(),
+ DataDictionaryEnum.BANK_TRANS_VERIFY_PORT.getCode()
+ );
try {
- addr = InetAddress.getByName(VERIFY_IP);
- socket = new Socket(addr, VERIFY_PORT);
+ addr = InetAddress.getByName(VERIFY_IPDic.getValue());
+ socket = new Socket(addr, Integer.parseInt(VERIFY_PORT_Dic.getValue()));
+// InetAddress localHost = addr.getLocalHost();
+// socket = new Socket(localHost, VERIFY_PORT);
// 发送
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream(),"GBK"));
--
Gitblit v1.9.1