Commit 3d462c58 by 刘帅

修改 trans_id类型不是字串解析出错 的问题

parent ec88357c
...@@ -389,6 +389,30 @@ int QFmClient::ProcessPosReqData(QJsonObject& object) ...@@ -389,6 +389,30 @@ int QFmClient::ProcessPosReqData(QJsonObject& object)
object = doc.object(); object = doc.object();
if(object.contains("trans_id") && (!object["trans_id"].isString()))
{
QString sRecvData(_recvbuf);
QString trans_id;
char sep = ',';
QStringList listItem;
listItem = sRecvData.split(sep,QString::SkipEmptyParts);
foreach (auto var, listItem)
{
if(var.contains("trans_id",Qt::CaseSensitive))
{
sep = ':';
QStringList slist = var.split(sep,QString::SkipEmptyParts);
qDebug()<<slist[1];
trans_id = slist[1].trimmed();
break;
}
}
object["trans_id"] = trans_id;
}
qDebug()<<object;
do do
{ {
_sockTimeOut = _longTimeOut; _sockTimeOut = _longTimeOut;
...@@ -830,6 +854,7 @@ void QFmClient::run() ...@@ -830,6 +854,7 @@ void QFmClient::run()
memset(_sendbuf, 0, MAX_BUF_LEN); memset(_sendbuf, 0, MAX_BUF_LEN);
QString temp = QString(QJsonDocument(object).toJson()); QString temp = QString(QJsonDocument(object).toJson());
temp = temp.simplified();
strcpy(_sendbuf, temp.toStdString().c_str()); strcpy(_sendbuf, temp.toStdString().c_str());
QLOG_INFO()<<"send to ZhProxy:\n"<<_sendbuf; QLOG_INFO()<<"send to ZhProxy:\n"<<_sendbuf;
...@@ -984,6 +1009,7 @@ void QFmClient::CheckRollBackData() ...@@ -984,6 +1009,7 @@ void QFmClient::CheckRollBackData()
memset(_sendbuf, 0, MAX_BUF_LEN); memset(_sendbuf, 0, MAX_BUF_LEN);
QString temp = QString(QJsonDocument(json).toJson()); QString temp = QString(QJsonDocument(json).toJson());
temp = temp.simplified();
strcpy(_sendbuf, temp.toStdString().c_str()); strcpy(_sendbuf, temp.toStdString().c_str());
qDebug() << "rollback data:" << _sendbuf; qDebug() << "rollback data:" << _sendbuf;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#define MAX_CODE_KEY 32 #define MAX_CODE_KEY 32
#define MAX_CTRL_INFO_LEN 16 #define MAX_CTRL_INFO_LEN 16
#define MAX_BUF_LEN 4096 #define MAX_BUF_LEN 25600
#define MAX_REQ_COUNT 25600 #define MAX_REQ_COUNT 25600
#define ROLL_BACK_FILE_NAME "fmclient.rbk" #define ROLL_BACK_FILE_NAME "fmclient.rbk"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment