Commit accb899e by NitefullWind

1. 添加测试项目。

parent 5e01cc45
TEMPLATE = subdirs
SUBDIRS += \
sbkpay \
tests
CONFIG += ordered
LIBS += -lIPHLPAPI LIBS += -lIPHLPAPI
INCLUDEPATH += $$PWD/../include INCLUDEPATH += $$PWD/../include \
$$PWD
HEADERS += \ HEADERS += \
$$PWD/dataprocess.h \ $$PWD/dataprocess.h \
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <QJsonObject> #include <QJsonObject>
#include <QJsonDocument> #include <QJsonDocument>
#include "QsLog.h" #include "QsLog.h"
#include "DataProcess/tools.h" #include "tools.h"
class CretOperate class CretOperate
{ {
public: public:
......
...@@ -171,7 +171,7 @@ void Control::SetResPonseWithMessage(QString code, const QString &message) ...@@ -171,7 +171,7 @@ void Control::SetResPonseWithMessage(QString code, const QString &message)
{ {
// FMTool::SetString(_response.ResponseCode, 3, code); // FMTool::SetString(_response.ResponseCode, 3, code);
// FMTool::SetString(_response.ResponseMsg, 40, message); // FMTool::SetString(_response.ResponseMsg, 40, message);
_responseJsonObj[JSON_KEY_STATUSCODE] = code; _responseJsonObj[JSON_KEY_STATUSCODE] = code.toInt();
_responseJsonObj[JSON_KEY_MESSAGE] = message; _responseJsonObj[JSON_KEY_MESSAGE] = message;
} }
...@@ -191,6 +191,7 @@ bool Control::SendMessageToServer(const QJsonObject &json, QByteArray &outdata, ...@@ -191,6 +191,7 @@ bool Control::SendMessageToServer(const QJsonObject &json, QByteArray &outdata,
CretOperate::GetSign(tmpjson); CretOperate::GetSign(tmpjson);
QLOG_INFO() << "send json to payment: " << tmpjson; QLOG_INFO() << "send json to payment: " << tmpjson;
qDebug() << "send json to payment: " << tmpjson;
if(_posType==SPCC) { if(_posType==SPCC) {
return SendMessageToSBKAPI(tmpjson, outdata, error); return SendMessageToSBKAPI(tmpjson, outdata, error);
......
...@@ -23,6 +23,10 @@ public: ...@@ -23,6 +23,10 @@ public:
void setIsinterrupt(bool isinterrupt); void setIsinterrupt(bool isinterrupt);
#ifdef FM_TEST
friend class TestSimphony;
#endif
signals: signals:
void Exits(); void Exits();
......
...@@ -422,7 +422,8 @@ int main(int argc, char *argv[]) ...@@ -422,7 +422,8 @@ int main(int argc, char *argv[])
// control.Start(as, b); // control.Start(as, b);
char spccIn[MAX_BUF_LEN] = "{\"fmId\":\"0123456789012345678\",\"reqType\":452,\"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] = "{\"fmId\":\"37941708301000003002\",\"reqType\":451,\"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\":\"1365670843098735301654\",\"businessDate\":\"20170830\"}";
control.Start(spccIn, b); control.Start(spccIn, b);
return a.exec(); return a.exec();
......
QT += core gui concurrent sql network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
INCLUDEPATH += $$PWD
include($$PWD/QsLog/QsLog.pri)
include($$PWD/DataProcess/DataProcess.pri)
LIBS += -L$$PWD/lib -llibeay32 -lssleay32
SOURCES += $$PWD/hostwidget.cpp \
$$PWD/control.cpp \
$$PWD/labelstimer.cpp \
$$PWD/fmp_settings.cpp
HEADERS += $$PWD/hostwidget.h \
$$PWD/fmp_window.h \
$$PWD/requestmodel.h \
$$PWD/global.h \
$$PWD/control.h \
$$PWD/payinterface.h \
$$PWD/fmerror.h \
$$PWD/fmtool.h \
$$PWD/jsonfactory.h \
$$PWD/labelstimer.h \
$$PWD/rspfactory.h \
$$PWD/reqfactory.h \
$$PWD/fmp_settings.h
FORMS += $$PWD/hostwidget.ui
...@@ -10,10 +10,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets ...@@ -10,10 +10,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = sbkpay TARGET = sbkpay
include("./QsLog/QsLog.pri") include($$PWD/sbkpay.pri)
include("./DataProcess/DataProcess.pri")
LIBS += -L$$PWD/lib -llibeay32 -lssleay32 SOURCES += main.cpp
CONFIG += C++11 SBKDLL1 CONFIG += C++11 SBKDLL1
...@@ -31,32 +30,14 @@ SBKDLL { ...@@ -31,32 +30,14 @@ SBKDLL {
DEFINES += FM_TEST DEFINES += FM_TEST
} }
release { CONFIG(debug, debug|release) {
QMAKE_CXXFLAGS += /Zi DESTDIR = $$PWD/../debug/
QMAKE_LFLAGS_RELEASE += /DEBUG } else {
QMAKE_CXXFLAGS += /Zi
QMAKE_LFLAGS_RELEASE += /DEBUG
DESTDIR = $$PWD/../release/
} }
SOURCES += main.cpp\
hostwidget.cpp \
control.cpp \
labelstimer.cpp \
fmp_settings.cpp
HEADERS += hostwidget.h \
fmp_window.h \
requestmodel.h \
global.h \
control.h \
payinterface.h \
fmerror.h \
fmtool.h \
jsonfactory.h \
labelstimer.h \
rspfactory.h \
reqfactory.h \
fmp_settings.h
FORMS += hostwidget.ui
LIBS += -luser32 LIBS += -luser32
......
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
# qtcreator generated files
*.pro.user*
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Binaries
# --------
*.dll
*.exe
QT += testlib
QT += gui core concurrent sql network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += qt warn_on depend_includepath testcase
TEMPLATE = app
SOURCES += tst_testsimphony.cpp
LIBS += -L$$PWD/../../sbkpay/lib -llibeay32 -lssleay32
LIBS += -luser32
CONFIG += C++11
include(../../sbkpay/sbkpay.pri)
RESOURCES += \
testdata.qrc
DEFINES += FM_TEST
CONFIG(debug, debug|release) {
DESTDIR = $$PWD/../../debug/
} else {
DESTDIR = $$PWD/../../release/
}
DISTFILES +=
<RCC>
<qresource prefix="/">
<file>testdata/simphony/end.txt</file>
<file>testdata/simphony/finds.txt</file>
<file>testdata/simphony/pay.txt</file>
<file>testdata/simphony/refund.txt</file>
<file>testdata/simphony/sign.txt</file>
<file>testdata/simphony/end_r.txt</file>
<file>testdata/simphony/finds_r.txt</file>
<file>testdata/simphony/pay_r.txt</file>
<file>testdata/simphony/refund_r.txt</file>
<file>testdata/simphony/sign_r.txt</file>
</qresource>
</RCC>
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400004</ns0:FROM><ns0:TERMINO>17081813011600446289184516</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>184516</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>
{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002718#授权码(AUTHORIZATION NO):754365#交易时间(TIME):0726#参考号(REF NO):9466170726Z00004001#交易金额(AMOUNT):RMB -80.00#卡内余额(BALANCE):RMB 0.00#--------------------------------#",
"printRow": "12"
},
"fmId": "9466170726Z00004001",
"ver": "1",
"message": "退款成功",
"statusCode": 100
}
</ns0:AP></ns0:OLTP>
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400004</ns0:FROM><ns0:TERMINO>17081813011600446289184516</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>184516</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002716#授权码(AUTHORIZATION NO):837541#交易时间(TIME):20170726 212434#参考号(REF NO):9466170726Z00002002#交易金额(AMOUNT):RMB 80.00#卡内余额(BALANCE):RMB 358.35#--------------------------------#",
"printRow": "12"
},
"paymentMethodCode": "80005",
"refNo": "9466170726Z00002002",
"ver": "1",
"authCode": "837541",
"payTransId": "002716",
"message": "支付成功",
"payAccount": "7310292930010509466",
"type": "81",
"transAmount": 8000,
"fmId": "9466170726Z00002002",
"transDate": "20170726 212434",
"paymentMethod": "微信卖出的电子星礼卡",
"statusCode": 100
}
</ns0:AP></ns0:OLTP>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400004</ns0:FROM><ns0:TERMINO>17081813011600446289184516</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>184516</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>
{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002716#授权码(AUTHORIZATION NO):837541#交易时间(TIME):20170726 212434#参考号(REF NO):9466170726Z00002002#交易金额(AMOUNT):RMB 80.00#卡内余额(BALANCE):RMB 358.35#--------------------------------#",
"printRow": "12"
},
"message": "打印日结单成功",
"statusCode": 100
}
</ns0:AP></ns0:OLTP>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400003</ns0:FROM><ns0:TERMINO>17081813011600446292190842</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>190842</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>5YoXyIETCHjinuv9nnyHQivNlrCz1D3SqAoijW/yPyAOg9X49lMUKO02F3tizQR2ILheEjbQb4q36g1AUD1MdOE7u2F08A8fmwtzEXTbgBjQx3QX9+U/dE1wp1ZC3JEgjDsX9wz6Qb/RxoJ0k6aIMRiOc7Kf2VAIdJtFe601/JUYgDbAu4o86yGU8R5nc4lCJu6XAVoEVP+XK0XwgICuI/ftlqWeb7bxKQMY7p1g47XorJznd/cT2ngj4xg8BdugVxvmvDXJ7fNSAqqrvMBBVAlER7PIKy7CM3E79aPsG6BYAJVosXfjQ6t3OML5CVWxoaiJ+va3/xVutCxj4XEVTILgSs+b34hwPuPNnGt+dGGnHJl9j+k1a1lEvWLFfAm9NXuHnDkKgBZlgxHG411jMgfvlzM/ls1HBpZCxHk7FL/w2hYsIe0kyLBEQzQAUvjIiv6Q/sYFLG2E6NoB+kSMtVrNuGP22Wrs2NEEWE81e/9nIPcMt7ZgpJZAixd3FBo+Ys6krG3c1rHDlrJjI+6dyC3/aZ0pPa8qW9jsF/yR5JPuPeaM4hoIoaKGjYbuUUA9/B412VGiWJNn9wNfCmkv4I6wsxqS6UjgNQMy8xh3sN8XD/Zj4x1avaQmxZAbf1ft2MUJQF7bNHTwsHpTbYHKDF4pbYzduK8LAfjVxy+txAxWC9vzsxBGk2C0cxbHafF4QuZJSq1d6NwoKIxfd8rD+IQ81J9hx9OYgr47zLcYoV8AA6U2NNT2Q0tvCTf/OJ7tKHVRb2VDnLU6By8nMqNQbwHhyy619j2i54qM8TkCryLoYqmmD4IXM3ZTtcN1j6fY2C5N5NtvIzAUoC0H11E2r7pt52aRwLSE0tMl6w1U7gFqJVgb2sSvpkhru8ko2kHE/boxCkFMn6bAZO9lbKksqcHoH8V2ZQyN1GVxOJDo12NIeiY+gl+Ixx750QJFkbne26y3kp7IZVbiRRQhgUerCGNCBVV79oHiBjXM3n6PSugVGS24izZVaV2FKHlim8Po+hVAvoFd4NnM2XfwHvShWWFJOKT5HsA/pwJpIZwcDyv1TyxjOTXKq2Zxt5i7y2xK0zfKdQB+K+KMI28kJ+uhbVwE+FPhsR1o71BibrD7elQ2VlhabrZR9pONpq1UH4oHhQA/gvBjCOFbQiBPfznd4LW+AFozoekWN5be0ynaVdESnb0XHQlNhpa37xcEnGID6MuNPzNe2JHZzIwHGo3ZvjR9/hYKSvnZMd6rf0rvKzbqCcDg5UXjjhqg4vV9r15AoxGETWr/+GRRZg/r5ugfi/bM/mp77Y6Ym+8xUSQgGjhdfYV2tQdhiIILjtPWCAnkCKg5CoDXSi4fqCA4as0sza3Ay5G7liwU1lq2OijN1AWYNeklXCRE2U6qTLrgW02Ojye79tqrXbdCHyuBxeu5d093syJtgaVXKUXDT6aN2h/QkbVPe75oRyy6K6/zYgres//7gYgIDfgFTGSvInjndKyR35E2EcH95cUFqBpl+PJetJHPV0hdSskCTQ3Tj9UsWiKYgT1v4Wc=</ns0:AP></ns0:OLTP>
\ No newline at end of file
{
"reqType":451,
"storeId":"17607",
"stationId":"1",
"partnerId":1443
}
{"ext":{"print":"********Freemud商户结账单*******#-------------------------------#商户名:北京嘉里中心咖啡店#批次号:#结账日期:2017-09-01#结账时间:12:08:52#--------SVC+SSTRedeem----------#类型 笔数 金额 实际金额 折扣金额#消费 0 0.00 0.00 0.00#退货 0 0.00 0.00 0.00#-------------------------------#---------商通卡-PNC------------#类型 笔数 金额 #消费 0 0.00#退货 0 0.00#-------------------------------#-----电子产品券-SSTRedeem4-----#类型 笔数 金额 #兑换 0 0.00#-------------------------------#-电子代金券&虚拟星礼卡-SSTRedeem2-#类型 笔数 金额 实际金额 折扣金额#消费 0 0.00 0.00 0.00#退货 0 0.00 0.00 0.00#-------------------------------#----------星礼卡充值-----------#类型 笔数 金额 #充值 0 0.00#撤销充值 0 0.00#----------星礼卡激活-----------#类型 笔数 金额 #激活 0 0.00#撤销激活 0 0.00#----------招行App积分交易------#类型 笔数 金额 #消费 0 0.00#----------微信支付日结单------#类型 笔数 金额 实际金额 优惠金额 #消费 0 0.00 0.00 0.00 #退款 0 0.00#-------------------------------#----------支付宝支付日结单------#类型 笔数 金额 #消费 0 0.00 #退款 0 0.00#-------------------------------","printRow":46},"message":"成功","statusCode":100,"ver":1}
{
"reqType":451,
"storeId":"17607",
"stationId":"1",
"partnerId":1443
}
{"message":"成功","queryInfo":[],"statusCode":100,"totalNum":0,"ver":1}
{
"businessDate": "20170830",
"code": "281766532676933899",
"operatorId": "0123",
"partnerId": 1443,
"partnerOrderId": "1365670843098735301654",
"reqType": 452,
"stationId": "1",
"storeId": "17607",
"transAmount": 1,
"transId": 301439
}
{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002716#授权码(AUTHORIZATION NO):837541#交易时间(TIME):20170726 212434#参考号(REF NO):9466170726Z00002002#交易金额(AMOUNT):RMB 80.00#卡内余额(BALANCE):RMB 358.35#--------------------------------#",
"printRow": "12"
},
"paymentMethodCode": "80005",
"refNo": "9466170726Z00002002",
"ver": "1",
"authCode": "837541",
"payTransId": "002716",
"message": "支付成功",
"payAccount": "7310292930010509466",
"type": "81",
"transAmount": 8000,
"fmId": "9466170726Z00002002",
"transDate": "20170726 212434",
"paymentMethod": "微信卖出的电子星礼卡",
"statusCode": 100
}
\ No newline at end of file

{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002718#授权码(AUTHORIZATION NO):754365#交易时间(TIME):0726#参考号(REF NO):9466170726Z00004001#交易金额(AMOUNT):RMB -80.00#卡内余额(BALANCE):RMB 0.00#--------------------------------#",
"printRow": "12"
},
"fmId": "9466170726Z00004001",
"ver": "1",
"message": "退款成功",
"statusCode": 100
}

{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002718#授权码(AUTHORIZATION NO):754365#交易时间(TIME):0726#参考号(REF NO):9466170726Z00004001#交易金额(AMOUNT):RMB -80.00#卡内余额(BALANCE):RMB 0.00#--------------------------------#",
"printRow": "12"
},
"fmId": "9466170726Z00004001",
"ver": "1",
"message": "退款成功",
"statusCode": 100
}
{
"reqType":451,
"storeId":"17607",
"stationId":"1",
"partnerId":1443
}
{"message": "签名成功","statusCode": "100"}
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400004</ns0:FROM><ns0:TERMINO>17081813011600446289184516</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>184516</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>
{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002716#授权码(AUTHORIZATION NO):837541#交易时间(TIME):20170726 212434#参考号(REF NO):9466170726Z00002002#交易金额(AMOUNT):RMB 80.00#卡内余额(BALANCE):RMB 358.35#--------------------------------#",
"printRow": "12"
},
"message": "打印日结单成功",
"statusCode": 100
}
</ns0:AP></ns0:OLTP>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400004</ns0:FROM><ns0:TERMINO>17081813011600446289184516</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>184516</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002716#授权码(AUTHORIZATION NO):837541#交易时间(TIME):20170726 212434#参考号(REF NO):9466170726Z00002002#交易金额(AMOUNT):RMB 80.00#卡内余额(BALANCE):RMB 358.35#--------------------------------#",
"printRow": "12"
},
"paymentMethodCode": "80005",
"refNo": "9466170726Z00002002",
"ver": "1",
"authCode": "837541",
"payTransId": "002716",
"message": "支付成功",
"payAccount": "7310292930010509466",
"type": "81",
"transAmount": 8000,
"fmId": "9466170726Z00002002",
"transDate": "20170726 212434",
"paymentMethod": "微信卖出的电子星礼卡",
"statusCode": 100
}
</ns0:AP></ns0:OLTP>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400004</ns0:FROM><ns0:TERMINO>17081813011600446289184516</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>184516</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>
{
"ext": {
"hint": "星礼卡 7310292930010509466 ",
"print": "---------星礼卡交易明细---------#商户号(MERCHANT NO):4000105996#终端号(TERMINAL NO):10599601#--------------------------------#卡号(CARD NO):7310292930010509466#流水号(TRACKING NO):002718#授权码(AUTHORIZATION NO):754365#交易时间(TIME):0726#参考号(REF NO):9466170726Z00004001#交易金额(AMOUNT):RMB -80.00#卡内余额(BALANCE):RMB 0.00#--------------------------------#",
"printRow": "12"
},
"fmId": "9466170726Z00004001",
"ver": "1",
"message": "退款成功",
"statusCode": 100
}
</ns0:AP></ns0:OLTP>
<?xml version="1.0" encoding="UTF-8"?><ns0:OLTP xmlns:ns0="http://spcc.com.cn/online"><ns0:HEADER><ns0:VER>01.01</ns0:VER><ns0:FROM>CS00400003</ns0:FROM><ns0:TERMINO>17081813011600446292190842</ns0:TERMINO><ns0:TO>CS00000001</ns0:TO><ns0:BUSINESS>0000000</ns0:BUSINESS><ns0:DATE>20170818</ns0:DATE><ns0:TIME>190842</ns0:TIME><ns0:STATCODE>0000</ns0:STATCODE><ns0:STATDESC/></ns0:HEADER><ns0:AP>5YoXyIETCHjinuv9nnyHQivNlrCz1D3SqAoijW/yPyAOg9X49lMUKO02F3tizQR2ILheEjbQb4q36g1AUD1MdOE7u2F08A8fmwtzEXTbgBjQx3QX9+U/dE1wp1ZC3JEgjDsX9wz6Qb/RxoJ0k6aIMRiOc7Kf2VAIdJtFe601/JUYgDbAu4o86yGU8R5nc4lCJu6XAVoEVP+XK0XwgICuI/ftlqWeb7bxKQMY7p1g47XorJznd/cT2ngj4xg8BdugVxvmvDXJ7fNSAqqrvMBBVAlER7PIKy7CM3E79aPsG6BYAJVosXfjQ6t3OML5CVWxoaiJ+va3/xVutCxj4XEVTILgSs+b34hwPuPNnGt+dGGnHJl9j+k1a1lEvWLFfAm9NXuHnDkKgBZlgxHG411jMgfvlzM/ls1HBpZCxHk7FL/w2hYsIe0kyLBEQzQAUvjIiv6Q/sYFLG2E6NoB+kSMtVrNuGP22Wrs2NEEWE81e/9nIPcMt7ZgpJZAixd3FBo+Ys6krG3c1rHDlrJjI+6dyC3/aZ0pPa8qW9jsF/yR5JPuPeaM4hoIoaKGjYbuUUA9/B412VGiWJNn9wNfCmkv4I6wsxqS6UjgNQMy8xh3sN8XD/Zj4x1avaQmxZAbf1ft2MUJQF7bNHTwsHpTbYHKDF4pbYzduK8LAfjVxy+txAxWC9vzsxBGk2C0cxbHafF4QuZJSq1d6NwoKIxfd8rD+IQ81J9hx9OYgr47zLcYoV8AA6U2NNT2Q0tvCTf/OJ7tKHVRb2VDnLU6By8nMqNQbwHhyy619j2i54qM8TkCryLoYqmmD4IXM3ZTtcN1j6fY2C5N5NtvIzAUoC0H11E2r7pt52aRwLSE0tMl6w1U7gFqJVgb2sSvpkhru8ko2kHE/boxCkFMn6bAZO9lbKksqcHoH8V2ZQyN1GVxOJDo12NIeiY+gl+Ixx750QJFkbne26y3kp7IZVbiRRQhgUerCGNCBVV79oHiBjXM3n6PSugVGS24izZVaV2FKHlim8Po+hVAvoFd4NnM2XfwHvShWWFJOKT5HsA/pwJpIZwcDyv1TyxjOTXKq2Zxt5i7y2xK0zfKdQB+K+KMI28kJ+uhbVwE+FPhsR1o71BibrD7elQ2VlhabrZR9pONpq1UH4oHhQA/gvBjCOFbQiBPfznd4LW+AFozoekWN5be0ynaVdESnb0XHQlNhpa37xcEnGID6MuNPzNe2JHZzIwHGo3ZvjR9/hYKSvnZMd6rf0rvKzbqCcDg5UXjjhqg4vV9r15AoxGETWr/+GRRZg/r5ugfi/bM/mp77Y6Ym+8xUSQgGjhdfYV2tQdhiIILjtPWCAnkCKg5CoDXSi4fqCA4as0sza3Ay5G7liwU1lq2OijN1AWYNeklXCRE2U6qTLrgW02Ojye79tqrXbdCHyuBxeu5d093syJtgaVXKUXDT6aN2h/QkbVPe75oRyy6K6/zYgres//7gYgIDfgFTGSvInjndKyR35E2EcH95cUFqBpl+PJetJHPV0hdSskCTQ3Tj9UsWiKYgT1v4Wc=</ns0:AP></ns0:OLTP>
\ No newline at end of file
#include <QtTest>
#include <QCoreApplication>
#include "control.h"
#include "jsonfactory.h"
#include "tools.h"
#include <QDebug>
// add necessary includes here
class TestSimphony : public QObject
{
Q_OBJECT
public:
TestSimphony();
~TestSimphony();
Control control;
char outdata[2048];
private slots:
void initTestCase();
void cleanupTestCase();
void test_InitPOSReqJsonObj_data();
void test_InitPOSReqJsonObj();
};
TestSimphony::TestSimphony()
{
}
TestSimphony::~TestSimphony()
{
}
void TestSimphony::initTestCase()
{
memset(outdata, 0, 1024);
}
void TestSimphony::cleanupTestCase()
{
}
void TestSimphony::test_InitPOSReqJsonObj_data()
{
QTest::addColumn<QByteArray>("indata");
QTest::addColumn<QJsonObject>("result");
QTest::addColumn<int>("reqType");
QTest::addColumn<QStringList>("reqList");
QMap<ReqType, QString> apiMaps;
apiMaps[sign] = "sign";
apiMaps[finds] = "finds";
apiMaps[endday] = "end";
// apiMaps[pay] = "pay";
// apiMaps[refund] = "refund";
for(QMap<ReqType,QString>::ConstIterator it=apiMaps.begin(); it!=apiMaps.end(); it++)
{
bool isOk = true;
QFile indataFile(QString(":/testdata/simphony/%1.txt").arg(it.value()));
QFile resultFile(QString(":/testdata/simphony/%1_r.txt").arg(it.value()));
QByteArray indata, resultData;
if((isOk &= indataFile.open(QIODevice::ReadOnly))) {
indata = indataFile.readAll();
}
if((isOk &= resultFile.open(QIODevice::ReadOnly))) {
resultData = resultFile.readAll();
}
QStringList reqList;
switch ((ReqType)it.key()) {
case finds:
reqList << "2017-09-01 00:00:00" << "2017-09-01 10:50:07" << "1";
break;
case pay:
reqList << "287303528213597599";
default:
break;
}
if(isOk) {
QTest::newRow(it.value().toLocal8Bit().data()) << indata << QJsonDocument::fromJson(resultData).object() << (int)it.key() << reqList;
}
indataFile.close();
resultFile.close();
}
}
void TestSimphony::test_InitPOSReqJsonObj()
{
QFETCH(QByteArray, indata);
QFETCH(QJsonObject, result);
QFETCH(int, reqType);
QFETCH(QStringList, reqList);
control.InitPOSReqJsonObj(QString::fromUtf8(indata).toUtf8().data());
qDebug() << "Pos req json obj: " << control._posReqJsonObj;
QJsonObject json;
JsonFactory::GetJsonWithType((ReqType)reqType, json, control._posReqJsonObj, reqList);
qDebug() << "Send to server: " << json;
QString error;
QByteArray serverRetData;
QJsonObject resultJson;
bool isOk = false;
if((ReqType)reqType == sign)
{
isOk = control.GetRSA(error);
if(isOk) {
control.SetResPonseWithMessage("100", QString::fromUtf8("签名成功"));
} else {
control.SetResPonseWithMessage("22", QString::fromUtf8("签名失败"));
}
resultJson = control._responseJsonObj;
} else {
isOk = control.SendMessageToServer(json, serverRetData, error);
if(isOk) {
if(reqType==finds||reqType==endday) {
resultJson = QJsonDocument::fromJson(serverRetData).object();
} else {
control.GetJson((ReqType)reqType, resultJson, serverRetData, error);
}
}
}
if(!isOk) {
qDebug() << "Is not ok: " << error;
}
QVERIFY(isOk);
qDebug() << "Expect json: " << result;
qDebug() << "Result json: " << resultJson;
QCOMPARE(resultJson["statusCode"].toInt(), 100);
}
QTEST_MAIN(TestSimphony)
#include "tst_testsimphony.moc"
TEMPLATE = subdirs
SUBDIRS += \
TestSimphony
CONFIG += ordered
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