Commit af787909 by NitefullWind

1. Simphony与SPCC整合。

parent ec1ef79f
......@@ -11,8 +11,8 @@
#define CFG_FILE_NAME "fmclient.cfg"
#define RBG_FILE_NAME "fmclient.rbk"
//#define DES3_KEY "ABCD@#9876DFSAAWKLDEOPDD"
#define DES3_KEY "DDDDEEEE45LPODDCXZZLKDDO"
#define DES3_KEY "ABCD@#9876DFSAAWKLDEOPDD"
//#define DES3_KEY "DDDDEEEE45LPODDCXZZLKDDO"
#define DES3_KEY_PRT "1JG23G12Y12V123G123F1DI1"
#define CRET_FILE_NAME "client.p12"
#define JSON_KEY_ONLY "partnerOrderId"
......
......@@ -27,7 +27,6 @@ bool FMNetWork::HttpPost(QString url, QByteArray &outdata, const QByteArray &ind
{
FMPSettings setting;
QString host = setting.GetValue(VALUE_HOST, "").toString();
QString action = setting.GetValue(CONFIG_OLTP_ACTION, "FromPOS").toString();
QEventLoop loop;
QTimer timer;
......@@ -44,9 +43,13 @@ bool FMNetWork::HttpPost(QString url, QByteArray &outdata, const QByteArray &ind
request.setRawHeader("Accept", accept.toUtf8());
request.setRawHeader("Host", host.toUtf8());
request.setRawHeader("Authorization", "Basic dXBzLWNsaWVudDo2VGk4TjBXNzRyb1A=");
request.setRawHeader("SOAPAction", action.toUtf8());
if(setting.GetValue(CONFIG_ALL_PARTNER, SPCC).toInt() == SPCC) {
QString action = setting.GetValue(CONFIG_OLTP_ACTION, "FromPOS").toString();
request.setRawHeader("SOAPAction", action.toUtf8());
QLOG_INFO() << "SPCC request action: " << action;
}
QLOG_INFO() << "HttpPost url: " << url << " content: " << content << " accept: " << accept << " timeout: " << timeout << " action: " << action;
QLOG_INFO() << "HttpPost url: " << url << " content: " << content << " accept: " << accept << " timeout: " << timeout;
QNetworkReply* reply = manger.post(request, indata);
......
......@@ -21,7 +21,7 @@ QMutex RollBack::s_rollorder_lock;
RollBack::RollBack(QObject *parent) : QThread(parent)
{
_posType = (POSType)_setting.GetValue(CONFIG_ALL_PARTNER, SPCC).toInt();
}
RollBack::~RollBack()
......@@ -69,32 +69,27 @@ void RollBack::RollWiteQuery(QSqlDatabase &_db, QSqlQuery &query)
QByteArray array;
// QString path;
QString error;
// ToolS::GetPath(path);
// qDebug() << "*****************************" << path;
// QByteArray data = QJsonDocument(json).toJson(QJsonDocument::Compact);
// QString url = QSettings(path + "\\" + USERCONFIG_NAME, QSettings::IniFormat).value(VALUE_URL).toString();
// QLOG_INFO() << "roll back server url : " << url;
// if(FMNetWork::HttpPost(url, array, data, "application/json;charset=utf-8","application/json", error, 12))
// {
// QString sql = QString("delete from orderlist where orderid='%1'").arg(parnetid);
// QLOG_ERROR() << sql;
// query.exec(sql);
// }
if(FMNetWork::RequestToOLTP(json, array, error, 20))
{
QString sql = QString("delete from orderlist where orderid='%1'").arg(parnetid);
QLOG_INFO() << sql;
if(!query.exec(sql))
QLOG_ERROR() << query.lastError() << query.lastError().text();
if(_posType == SPCC) {
if(FMNetWork::RequestToOLTP(json, array, error, 20))
{
QString sql = QString("delete from orderlist where orderid='%1'").arg(parnetid);
QLOG_INFO() << sql;
if(!query.exec(sql))
QLOG_ERROR() << query.lastError() << query.lastError().text();
}
} else {
QString url = _setting.GetValue(VALUE_URL, "").toString();
QByteArray data = QJsonDocument(json).toJson(QJsonDocument::Compact);
if(FMNetWork::HttpPost(url, array, data, "application/json;charset=utf-8","application/json", error, 12))
{
QString sql = QString("delete from orderlist where orderid='%1'").arg(parnetid);
QLOG_ERROR() << sql;
query.exec(sql);
}
}
QLOG_WARN() << "rollback : " << "rollback resulte " << QThread::currentThreadId() << ":" << array;
......@@ -122,7 +117,7 @@ void RollBack::run()
InsertRollOrder(query);
query.clear();
QLOG_WARN() << "rollback : " << "find sql : " << "select * from orderlist";
// QLOG_WARN() << "rollback : " << "find sql : " << "select * from orderlist";
bool flag = query.exec("select * from orderlist");
......
......@@ -8,6 +8,7 @@
#include <QPointer>
#include <QSemaphore>
#include "fmp_settings.h"
#include "requestmodel.h"
class QSqlDatabase;
class QSqlQuery;
......@@ -34,6 +35,7 @@ private:
static QMap<QString, QString> s_rollorder;
static QMutex s_rollorder_lock;
FMPSettings _setting;
POSType _posType;
};
#endif // ROLLBACK_H
D:\GITCODE\SBKCLIENT\DEBUG\FMCLIENT.EXE
D:\gitcode\sbkclient\Debug\fmclient.exp
D:\GITCODE\SBKCLIENT\DEBUG\FMCLIENT.ILK
D:\gitcode\sbkclient\Debug\fmclient.lib
D:\GITCODE\SBKCLIENT\DEBUG\FMCLIENT.PDB
D:\gitcode\sbkclient\ZH_Client\Debug\cl.command.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\CL.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\CL.write.1.tlog
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\DUMP.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\ERROR.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\FMCLIENT.EXE.EMBED.MANIFEST
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\FMCLIENT.EXE.EMBED.MANIFEST.RES
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\FMCLIENT.EXE.INTERMEDIATE.MANIFEST
D:\gitcode\sbkclient\ZH_Client\Debug\fmclient.write.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\fmclient_manifest.rc
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\HASHTABLE.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\HASHTABLE_SEED.OBJ
D:\gitcode\sbkclient\ZH_Client\Debug\link.15988.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link.15988.write.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link.15988-cvtres.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link.15988-cvtres.write.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link.command.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link.write.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link-cvtres.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\link-cvtres.write.1.tlog
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\LOAD.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\MEMORY.OBJ
D:\gitcode\sbkclient\ZH_Client\Debug\mt.command.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\mt.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\mt.write.1.tlog
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\PACK_UNPACK.OBJ
D:\gitcode\sbkclient\ZH_Client\Debug\rc.command.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\rc.read.1.tlog
D:\gitcode\sbkclient\ZH_Client\Debug\rc.write.1.tlog
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\RESDATA.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\SBK_CLIENT.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\STRBUFFER.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\STRCONV.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\TASTDATAPROCESS.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\TESTLOG.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\TESTRESDATA.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\TESTTOOL.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\UTF.OBJ
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\VALUE.OBJ
D:\gitcode\sbkclient\ZH_Client\Debug\vc100.idb
D:\GITCODE\SBKCLIENT\ZH_CLIENT\DEBUG\VC100.PDB
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
#v4.0:v100
Debug|Win32|D:\gitcode\sbkclient\|
^D:\gitcode\sbkclient\ZH_Client\ZH_Client.vcxproj
D:\gitcode\sbkclient\Debug\fmclient.lib
D:\gitcode\sbkclient\Debug\fmclient.lib
D:\gitcode\sbkclient\Debug\fmclient.exp
D:\gitcode\sbkclient\Debug\fmclient.exp
......@@ -59,6 +59,7 @@ Control::Control(QObject *parent) : QObject(parent), _widget(NULL)
}
_isinterrupt = false;
_posType = (POSType)_setting.GetValue(CONFIG_ALL_PARTNER, SPCC).toInt();
InitModel();
}
......@@ -153,14 +154,10 @@ void Control::InitPOSReqJsonObj(const char *indata)
int type = FMTool::GetJsonValue(_posReqJsonObj, JSON_KEY_REQTYPE).toInt(SPCC_sign);
if(type>=SPCC_sign && type<=SPCC_finds) {
_posReqJsonObj[JSON_KEY_REQTYPE] = type - SPCC_sign;
_posType = SPCC;
} else if(type>=SIMPHONY_sign && type<=SIMPHONY_finds) {
_posReqJsonObj[JSON_KEY_REQTYPE] = type - SIMPHONY_sign;
_posType = SIMPHONY;
if(type < SPCC_sign || type > SPCC_finds) {
_posReqJsonObj[JSON_KEY_REQTYPE] = SPCC_sign;
} else {
// TODO: Other type.
_posReqJsonObj[JSON_KEY_REQTYPE] = type - SPCC_sign;
}
} else {
qDebug() << "Json parse error: " << parseError.errorString();
......@@ -168,7 +165,7 @@ void Control::InitPOSReqJsonObj(const char *indata)
ReqType type = (ReqType)(FMTool::GetString(_request.TransType, 2).toInt());
JsonFactory::GetJsonWithType(type, _posReqJsonObj, _request);
qDebug() << _posReqJsonObj;
_posType = RES;
// _posType = RES;
}
}
......@@ -228,9 +225,8 @@ bool Control::SendMessageToServer(const QJsonObject &json, QByteArray &outdata,
bool Control::SendMessageToPayMent(const QJsonObject &json, QByteArray &outdata, QString &error)
{
QByteArray array;
QString path;
ToolS::GetPath(path);
QString url = QSettings(path + "\\" + USERCONFIG_NAME, QSettings::IniFormat).value(VALUE_URL).toString();
QString url = _setting.GetValue(VALUE_URL, "").toString();
QLOG_INFO() << "send json to payment: " << json;
......@@ -269,7 +265,6 @@ bool Control::SendMessageToPayMent(const QJsonObject &json, QByteArray &outdata,
bool Control::HttpPost(QString url, QByteArray &outdata, const QByteArray &indata, QString content, QString accept, QString &error, int timeout)
{
QString host = _setting.GetValue(VALUE_HOST, "").toString();
QString action = _setting.GetValue(CONFIG_OLTP_ACTION, "FromPOS").toString();
QEventLoop loop;
QTimer timer;
......@@ -286,9 +281,14 @@ bool Control::HttpPost(QString url, QByteArray &outdata, const QByteArray &indat
request.setRawHeader("Accept", accept.toUtf8());
request.setRawHeader("Host", host.toUtf8());
request.setRawHeader("Authorization", "Basic dXBzLWNsaWVudDo2VGk4TjBXNzRyb1A=");
request.setRawHeader("SOAPAction", action.toUtf8());
QLOG_INFO() << "HttpPost url: " << url << " content: " << content << " accept: " << accept << " timeout: " << timeout << " action: " << action;
if(_posType == SPCC) {
QString action = _setting.GetValue(CONFIG_OLTP_ACTION, "FromPOS").toString();
request.setRawHeader("SOAPAction", action.toUtf8());
QLOG_INFO() << "SPCC request action: " << action;
}
QLOG_INFO() << "HttpPost url: " << url << " content: " << content << " accept: " << accept << " timeout: " << timeout;
QNetworkReply* reply = manger.post(request, indata);
......@@ -303,6 +303,14 @@ bool Control::HttpPost(QString url, QByteArray &outdata, const QByteArray &indat
reply->deleteLater();
#ifdef FM_TEST
QEventLoop test_loop;
QTimer test_timer;
connect(&test_timer, &QTimer::timeout, &test_loop, &QEventLoop::quit);
test_timer.start(3*1000);
test_loop.exec();
#endif
if(_isinterrupt)
{
error = QString::fromLocal8Bit("收款被取消");
......@@ -335,7 +343,6 @@ bool Control::HttpPost(QString url, QByteArray &outdata, const QByteArray &indat
bool Control::RollHttpPost(QString url, QByteArray &outdata, const QByteArray &indata, QString content, QString accept, QString &error, int timeout)
{
QString host = _setting.GetValue(VALUE_HOST, "").toString();
QString action = _setting.GetValue(CONFIG_OLTP_ACTION, "FromPOS").toString();
QEventLoop loop;
QTimer timer;
......@@ -352,9 +359,14 @@ bool Control::RollHttpPost(QString url, QByteArray &outdata, const QByteArray &i
request.setRawHeader("Accept", accept.toUtf8());
request.setRawHeader("Host", host.toUtf8());
request.setRawHeader("Authorization", "Basic dXBzLWNsaWVudDo2VGk4TjBXNzRyb1A=");
request.setRawHeader("SOAPAction", action.toUtf8());
QLOG_INFO() << "HttpPost url: " << url << " content: " << content << " accept: " << accept << " timeout: " << timeout << " action: " << action;
if(_posType == SPCC) {
QString action = _setting.GetValue(CONFIG_OLTP_ACTION, "FromPOS").toString();
request.setRawHeader("SOAPAction", action.toUtf8());
QLOG_INFO() << "SPCC request action: " << action;
}
QLOG_INFO() << "HttpPost url: " << url << " content: " << content << " accept: " << accept << " timeout: " << timeout;
QNetworkReply* reply = manger.post(request, indata);
......@@ -465,9 +477,7 @@ bool Control::GetRSA(QString &error)
QLOG_INFO() << "get mac sign request : " << json;
QString path;
ToolS::GetPath(path);
QString url = QSettings(path + "\\" + USERCONFIG_NAME, QSettings::IniFormat).value(VALUE_URL_CRET).toString();
QString url = _setting.GetValue(VALUE_URL_CRET, "").toString();
QByteArray data = QJsonDocument(json).toJson(QJsonDocument::Compact);
if(_posType == SPCC)
......
......@@ -93,6 +93,7 @@
#define CONFIG_ALL_PATH "ALL/DLLPATH"
#define CONFIG_ALL_PARTNER "ALL/partner"
#define CONFIG_OLTP_URL "OLTP/url"
#define CONFIG_OLTP_ACTION "OLTP/action"
#define CONFIG_OLTP_TIMEOUT "OLTP/timeout"
......
......@@ -401,8 +401,8 @@ int main(int argc, char *argv[])
// control.Start(as, b);
char spccIn[MAX_BUF_LEN] = "{\"fmId\":\"11971709011000000002\",\"reqType\":351,\"storeId\":\"17607\",\"stationId\":\"1\",\"partnerId\":1443,\"operatorId\":\"0123\",\"transId\":301439,\"transAmount\":1,\"partnerOrderId\":\"909911039990170830002\",\"businessDate\":\"20170508\",\"products\":[{\"pid\":\"123\",\"name\":\"中杯拿铁\",\"price\":321,\"salesType\":\"NORMAL\"}]}";
// char spccIn[MAX_BUF_LEN] = "{\"reqType\":452,\"storeId\":\"17607\",\"stationId\":\"1\",\"partnerId\":1443,\"operatorId\":\"0123\",\"transId\":301439,\"transAmount\":1,\"partnerOrderId\":\"1365670843098735011753\",\"businessDate\":\"20170830\"}";
// char spccIn[MAX_BUF_LEN] = "{\"fmId\":\"11971709011000000002\",\"reqType\":352,\"storeId\":\"1713\",\"stationId\":\"1\",\"partnerId\":1438,\"operatorId\":\"0123\",\"transId\":301439,\"transAmount\":1,\"partnerOrderId\":\"909911039990170830002\",\"businessDate\":\"20170508\",\"products\":[{\"pid\":\"123\",\"name\":\"中杯拿铁\",\"price\":321,\"salesType\":\"NORMAL\"}]}";
char spccIn[MAX_BUF_LEN] = "{\"reqType\":352,\"storeId\":\"1713\",\"stationId\":\"1\",\"partnerId\":1438,\"operatorId\":\"0123\",\"transId\":301439,\"transAmount\":1,\"partnerOrderId\":\"201709280001\",\"businessDate\":\"20170830\"}";
// char spccIn[MAX_BUF_LEN] = "{\"fmId\":\"64761709011000001002\",\"reqType\":453,\"storeId\":\"17607\",\"stationId\":\"1\",\"partnerId\":1443,\"operatorId\":\"0123\",\"transId\":301439,\"transAmount\":1,\"partnerOrderId\":\"1365670843098735011754\",\"businessDate\":\"20170830\"}";
control.Start(spccIn, b);
......
......@@ -14,7 +14,7 @@ include($$PWD/sbkpay.pri)
SOURCES += main.cpp
CONFIG += C++11 SBKDLL
CONFIG += C++11 SBKDLL1
#DEFINES += MOCK
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.3.1, 2017-08-20T19:33:06. -->
<!-- Written by QtCreator 4.4.0, 2017-09-27T16:19:45. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
......
QT += testlib
QT += gui core concurrent sql network
DEFINES += FMTEST
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += qt warn_on depend_includepath testcase
......
{
"reqType":451,
"storeId":"17607",
"storeId":"1713",
"stationId":"1",
"partnerId":1443
"partnerId":1438
}
{
"reqType":451,
"storeId":"17607",
"reqType":351,
"storeId":"1713",
"stationId":"1",
"partnerId":1443
"partnerId":1438
}
......@@ -2,11 +2,11 @@
"businessDate": "20170830",
"code": "281766532676933899",
"operatorId": "0123",
"partnerId": 1443,
"partnerId": 1438,
"partnerOrderId": "1365670843098735301654",
"reqType": 452,
"reqType": 352,
"stationId": "1",
"storeId": "17607",
"storeId": "1713",
"transAmount": 1,
"transId": 301439
}
{
"reqType":451,
"storeId":"17607",
"reqType":351,
"storeId":"1713",
"stationId":"1",
"partnerId":1443
"partnerId":1438
}
......@@ -5,10 +5,18 @@
#include "fmnetwork.h"
#include "tools.h"
#include "cretopt.h"
#include "rollback.h"
#include <QDebug>
// add necessary includes here
static QString CreatePartnerOrderId()
{
QString orderId("171301%1");
orderId = orderId.arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz"));
return orderId;
}
class TestSimphony : public QObject
{
Q_OBJECT
......@@ -29,10 +37,16 @@ private slots:
void test_CreateOLTPXML();
void test_GetSign();
void test_POSRequest_data();
void test_POSRequest();
};
TestSimphony::TestSimphony()
{
static RollBack rollback;
if(!rollback.isRunning())
rollback.start();
}
TestSimphony::~TestSimphony()
......@@ -184,6 +198,85 @@ void TestSimphony::test_GetSign()
QCOMPARE(CretOperate::GetSign(json), true);
}
void TestSimphony::test_POSRequest_data()
{
QTest::addColumn<QByteArray>("ReqData");
QTest::newRow("Manage") << QString("{\"reqType\":351,\"storeId\":\"1713\",\"stationId\":\"1\",\"partnerId\":1438}")
.toLocal8Bit();
int amount = 200;
QTest::newRow("Pay") << QString("{ "
"\"businessDate\": \"%1\", "
"\"operatorId\": \"0123\", "
"\"partnerId\": 1438, "
"\"partnerOrderId\": \"%2\", "
"\"reqType\": 352, "
"\"stationId\": \"1\", "
"\"storeId\": \"1713\", "
"\"transAmount\": %3, "
"\"transId\": 301439 "
"}")
.arg(QDate::currentDate().toString("yyyyMMdd"))
.arg(CreatePartnerOrderId())
.arg(amount)
.toLocal8Bit();
QTest::newRow("Refund") << QString("{ "
"\"businessDate\": \"%1\", "
"\"operatorId\": \"0123\", "
"\"partnerId\": 1438, "
"\"partnerOrderId\": \"%2\", "
"\"reqType\": 353, "
"\"stationId\": \"1\", "
"\"storeId\": \"1713\", "
"\"transAmount\": %3, "
"\"transId\": 301439, "
"\"fmId\": \"\" "
"}")
.arg(QDate::currentDate().toString("yyyyMMdd"))
.arg(CreatePartnerOrderId())
.arg(amount)
.toLocal8Bit();
}
void TestSimphony::test_POSRequest()
{
QFETCH(QByteArray, ReqData);
if(strcmp(QTest::currentDataTag(), "Refund") == 0) {
QJsonObject reqObj = QJsonDocument::fromJson(QString::fromLocal8Bit(QByteArray(ReqData)).toUtf8()).object();
// 如果没传fmId则尝试从文件读取
if(!reqObj.contains(JSON_KEY_FMID) || reqObj[JSON_KEY_FMID].toString().isEmpty()) {
QFile tmpFmIdFile("tmpFmIdFile");
if(tmpFmIdFile.open(QFile::ReadOnly)) {
reqObj[JSON_KEY_FMID] = QString(tmpFmIdFile.readLine());
ReqData = QJsonDocument(reqObj).toJson(QJsonDocument::Compact);
tmpFmIdFile.close();
}
}
}
control.Start(ReqData.data(), outdata);
qDebug() << "ReqData: " << ReqData.data();
qDebug() << "OutData: " << QString::fromLocal8Bit(QByteArray(outdata));
if(strcmp(QTest::currentDataTag(), "Pay") == 0) {
QJsonObject rspObj = QJsonDocument::fromJson(QString::fromLocal8Bit(QByteArray(outdata)).toUtf8()).object();
qDebug() << rspObj;
if(rspObj[JSON_KEY_STATUSCODE].toInt() == 100) {
QString fmId = rspObj[JSON_KEY_FMID].toString();
QFile tmpFmIdFile("tmpFmIdFile");
if(tmpFmIdFile.open(QFile::WriteOnly)) {
tmpFmIdFile.write(fmId.toLocal8Bit());
tmpFmIdFile.close();
}
qDebug() << tmpFmIdFile.errorString();
}
}
}
QTEST_MAIN(TestSimphony)
#include "tst_testsimphony.moc"
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