Commit 6b0c543f by NitefullWind

1. 请求Json解析失败后打印Log并返回给POS错误信息。 2. 修改版本号。

parent 9d49528e
...@@ -94,7 +94,6 @@ void Control::Start(const char *indata, char *outdata) ...@@ -94,7 +94,6 @@ void Control::Start(const char *indata, char *outdata)
if(_widget == NULL) if(_widget == NULL)
_widget = new HostWidget(); _widget = new HostWidget();
InitPOSReqJsonObj(indata);
connect(_widget, &HostWidget::Interrupt, this, &Control::OnInterrupt); connect(_widget, &HostWidget::Interrupt, this, &Control::OnInterrupt);
...@@ -113,9 +112,10 @@ void Control::Start(const char *indata, char *outdata) ...@@ -113,9 +112,10 @@ void Control::Start(const char *indata, char *outdata)
loop.exit(); loop.exit();
}); });
if(InitPOSReqJsonObj(indata)) {
ReqType reqType = (ReqType)FMTool::GetJsonValue(_posReqJsonObj, JSON_KEY_REQTYPE).toInt(); ReqType reqType = (ReqType)FMTool::GetJsonValue(_posReqJsonObj, JSON_KEY_REQTYPE).toInt();
// _widget->ShowWithRequest(_request); // _widget->ShowWithRequest(_request);
_widget->ShowWithRequest(_posReqJsonObj); _widget->ShowWithRequest(_posReqJsonObj);
...@@ -128,6 +128,8 @@ void Control::Start(const char *indata, char *outdata) ...@@ -128,6 +128,8 @@ void Control::Start(const char *indata, char *outdata)
loop.exec(); loop.exec();
} }
}
_lock.lock(); _lock.lock();
delete _widget; delete _widget;
_widget = NULL; _widget = NULL;
...@@ -145,8 +147,15 @@ void Control::Start(const char *indata, char *outdata) ...@@ -145,8 +147,15 @@ void Control::Start(const char *indata, char *outdata)
QLOG_INFO() << "return data to pos : " << QString::fromLocal8Bit(outdata); QLOG_INFO() << "return data to pos : " << QString::fromLocal8Bit(outdata);
} }
void Control::InitPOSReqJsonObj(const char *indata) bool Control::InitPOSReqJsonObj(const char *indata)
{ {
if(_posType == RES)
{
memcpy(&_request, indata, sizeof(struct AlipayRequest));
ReqType type = (ReqType)(FMTool::GetString(_request.TransType, 2).toInt());
JsonFactory::GetJsonWithType(type, _posReqJsonObj, _request);
qDebug() << _posReqJsonObj;
} else {
QJsonParseError parseError; QJsonParseError parseError;
QJsonDocument inDataDoc = QJsonDocument::fromJson(QString::fromLocal8Bit(indata).toUtf8(), &parseError); QJsonDocument inDataDoc = QJsonDocument::fromJson(QString::fromLocal8Bit(indata).toUtf8(), &parseError);
if(parseError.error == QJsonParseError::NoError) { if(parseError.error == QJsonParseError::NoError) {
...@@ -160,13 +169,13 @@ void Control::InitPOSReqJsonObj(const char *indata) ...@@ -160,13 +169,13 @@ void Control::InitPOSReqJsonObj(const char *indata)
_posReqJsonObj[JSON_KEY_REQTYPE] = type - SPCC_sign; _posReqJsonObj[JSON_KEY_REQTYPE] = type - SPCC_sign;
} }
} else { } else {
qDebug() << "Json parse error: " << parseError.errorString(); QString error = QString::fromLocal8Bit("请求解析失败:%1").arg(parseError.errorString());
memcpy(&_request, indata, sizeof(struct AlipayRequest)); QLOG_ERROR() << error;
ReqType type = (ReqType)(FMTool::GetString(_request.TransType, 2).toInt()); SetResPonseWithMessage("23", error);
JsonFactory::GetJsonWithType(type, _posReqJsonObj, _request); return false;
qDebug() << _posReqJsonObj;
// _posType = RES;
} }
}
return true;
} }
void Control::SetResPonseWithMessage(QString code, const QString &message) void Control::SetResPonseWithMessage(QString code, const QString &message)
......
...@@ -61,7 +61,7 @@ private: ...@@ -61,7 +61,7 @@ private:
bool RollHttpPost(QString url, QByteArray &outdata, const QByteArray &indata, QString content, QString accept, QString &error, int timeout); bool RollHttpPost(QString url, QByteArray &outdata, const QByteArray &indata, QString content, QString accept, QString &error, int timeout);
void InitPOSReqJsonObj(const char *indata); bool InitPOSReqJsonObj(const char *indata);
static bool IsValidCode(const QString &code); static bool IsValidCode(const QString &code);
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
#define VER_MAJOR 0 #define VER_MAJOR 0
#define VER_MINOR 2 #define VER_MINOR 2
#define VER_REVISION 5 #define VER_REVISION 7
#define VER_BUILD 2 #define VER_BUILD 0
//! Convert version numbers to string //! Convert version numbers to string
#define _STR(S) #S #define _STR(S) #S
......
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