Commit 2f600226 by NitefullWind

1. 整合master分支,开发流水查询功能。 2. 获取签名失败返回错误信息。

parent a1552011
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
#include <QSettings> #include <QSettings>
#include <QJsonObject> #include <QJsonObject>
#include <QEventLoop> #include <QEventLoop>
#include <QFont>
#include <QFontDatabase>
#include <QApplication>
#include <QJsonDocument> #include <QJsonDocument>
#include <Windows.h> #include <Windows.h>
...@@ -49,29 +52,27 @@ Control::Control(QObject *parent) : QObject(parent), _widget(NULL) ...@@ -49,29 +52,27 @@ Control::Control(QObject *parent) : QObject(parent), _widget(NULL)
void Control::Start(const char *indata, char *outdata) void Control::Start(const char *indata, char *outdata)
{ {
QLOG_INFO() << "get data from pos:" << QString::fromLocal8Bit(indata);
QString appPath;
char pathStr[MAX_PATH] = { 0 };
GetProcPath(pathStr);
appPath = QString::fromLocal8Bit(pathStr);
QFontDatabase::addApplicationFont(appPath + "\\msyh.ttf");
QFont ft("Microsoft YaHei UI Light");
qApp->setFont(ft);
QEventLoop loop; QEventLoop loop;
if(_widget == NULL) if(_widget == NULL)
_widget = new HostWidget(); _widget = new HostWidget();
QLOG_INFO() << "In data: " << QString::fromLocal8Bit(indata);
QJsonParseError parseError; QJsonParseError parseError;
QJsonDocument inDataDoc = QJsonDocument::fromJson(QString::fromUtf8(indata).toUtf8(), &parseError); QJsonDocument inDataDoc = QJsonDocument::fromJson(QString::fromUtf8(indata).toUtf8(), &parseError);
if(parseError.error == QJsonParseError::NoError) { if(parseError.error == QJsonParseError::NoError) {
_posReqJsonObj = inDataDoc.object(); _posReqJsonObj = inDataDoc.object();
int type = FMTool::GetJsonValue(_posReqJsonObj, JSON_KEY_REQTYPE).toInt(); int type = FMTool::GetJsonValue(_posReqJsonObj, JSON_KEY_REQTYPE).toInt(SPCC_sign);
switch (type) { _posReqJsonObj[JSON_KEY_REQTYPE] = type - SPCC_sign;
case SPCC_pay:
_posReqJsonObj[JSON_KEY_REQTYPE] = 72;
break;
case SPCC_refund:
_posReqJsonObj[JSON_KEY_REQTYPE] = 62;
break;
default:
break;
}
} else { } else {
qDebug() << "Json parse error: " << parseError.errorString(); qDebug() << "Json parse error: " << parseError.errorString();
memcpy(&_request, indata, sizeof(struct AlipayRequest)); memcpy(&_request, indata, sizeof(struct AlipayRequest));
...@@ -226,8 +227,8 @@ bool Control::SendMessageToSBKAPI(const QJsonObject &json, QByteArray &outdata, ...@@ -226,8 +227,8 @@ bool Control::SendMessageToSBKAPI(const QJsonObject &json, QByteArray &outdata,
"</ns0:AP>" "</ns0:AP>"
"</ns0:OLTP>"); "</ns0:OLTP>");
QString nsTo = "CS00400004"; QString nsTo = "CS00400004";
int type = FMTool::GetJsonValue(json, JSON_KEY_REQTYPE).toInt(-1); int type = FMTool::GetJsonValue(json, JSON_KEY_REQTYPE).toInt(sign);
if(type==-1) { if(type==sign) {
nsTo = "CS00400003"; nsTo = "CS00400003";
} }
QString date = QDate::currentDate().toString("yyMMdd"); QString date = QDate::currentDate().toString("yyMMdd");
...@@ -250,14 +251,16 @@ bool Control::SendMessageToSBKAPI(const QJsonObject &json, QByteArray &outdata, ...@@ -250,14 +251,16 @@ bool Control::SendMessageToSBKAPI(const QJsonObject &json, QByteArray &outdata,
strcpy(in, reqXmlStr.toUtf8().data()); strcpy(in, reqXmlStr.toUtf8().data());
QLOG_INFO() << "Request StarbucksAPI XML data: " << in; QLOG_INFO() << "Request StarbucksAPI XML data: " << in;
#define SBKTEST #ifndef SBKTEST
#ifdef SBKTEST
int result = skbSend(in, guid, out, errMsg, mode); int result = skbSend(in, guid, out, errMsg, mode);
#else #else
QLOG_DEBUG() << "============ Read debug data. ==============="; QLOG_DEBUG() << "=========================================== Read debug data. ========================================";
QFile f(qApp->applicationDirPath()+"/test/1.txt"); QLOG_DEBUG() << "Test req type: " << type;
QFile f(qApp->applicationDirPath()+QString("/test/%1.txt").arg(type));
f.open(QIODevice::ReadOnly); f.open(QIODevice::ReadOnly);
strcpy(out, f.readAll().data()); strcpy(out, f.readAll().data());
QLOG_DEBUG() << "=========================================== End read debug data. ====================================";
int result = 0; int result = 0;
#endif //! End def SBKTEST #endif //! End def SBKTEST
...@@ -371,13 +374,12 @@ bool Control::GetRSA(QString &error) ...@@ -371,13 +374,12 @@ bool Control::GetRSA(QString &error)
SetRSACret setRsaCret = (SetRSACret)lib.resolve("SetRSACret"); SetRSACret setRsaCret = (SetRSACret)lib.resolve("SetRSACret");
if(setRsaCret != NULL) { if(setRsaCret != NULL) {
if(setRsaCret(out.data())) { rlt = setRsaCret(out.data());
if(rlt) {
QLOG_INFO() << "setRSACret return success. "; QLOG_INFO() << "setRSACret return success. ";
return true;
} else { } else {
error = "setRSACret return error."; error = QString::fromLocal8Bit("保存文件签名失败");
QLOG_ERROR() << error; QLOG_ERROR() << error;
return false;
} }
} else { } else {
QLOG_ERROR() << "get function (SetRSACret) failed"; QLOG_ERROR() << "get function (SetRSACret) failed";
...@@ -415,7 +417,7 @@ bool Control::GetRSA(QString &error) ...@@ -415,7 +417,7 @@ bool Control::GetRSA(QString &error)
QLOG_ERROR() << "load dll failed"; QLOG_ERROR() << "load dll failed";
error = QString::fromLocal8Bit("加载基础组件(dll)失败"); error = QString::fromLocal8Bit("加载基础组件(dll)失败");
} }
return rlt; return (rlt==1);
} }
QString Control::GetMacString(bool isSign) QString Control::GetMacString(bool isSign)
...@@ -497,14 +499,28 @@ bool Control::GetJson(ReqType type,QJsonObject &json, const QByteArray array, QS ...@@ -497,14 +499,28 @@ bool Control::GetJson(ReqType type,QJsonObject &json, const QByteArray array, QS
json = jsonDocument.object(); json = jsonDocument.object();
if(json.contains(JSON_KEY_MESSAGE) && json.contains(JSON_KEY_STATUSCODE) && (json[JSON_KEY_STATUSCODE].toInt() == 307 || json[JSON_KEY_STATUSCODE].toInt() == 303))
{
error = QString::fromLocal8Bit("签名过期,请重新获取签名");
json.insert(JSON_KEY_MESSAGE, QString::fromLocal8Bit("签名过期,请重新获取签名"));
}
if(type == againprint)
json.insert(JSON_KEY_FMID, _fmId);
// RspFactory::GetResPonseJson(type, _response, json); // RspFactory::GetResPonseJson(type, _response, json);
RspFactory::GetResPonseJson(type, _responseJsonObj, json); RspFactory::GetResPonseJson(type, _responseJsonObj, json);
if(json.contains(JSON_KEY_MESSAGE)) if(json.contains(JSON_KEY_MESSAGE))
error = json[JSON_KEY_MESSAGE].toString(); error = json[JSON_KEY_MESSAGE].toString();
if(type == refund && json.contains(JSON_KEY_STATUSCODE) && json[JSON_KEY_STATUSCODE].toInt() == 100)
json.insert(JSON_KET_CLIENTREF, FMTool::GetJsonValue(_posReqJsonObj, JSON_KEY_TRANSAMOUNT));
if(json.contains(JSON_KEY_STATUSCODE) && json[JSON_KEY_STATUSCODE].toInt() == 100) if(json.contains(JSON_KEY_STATUSCODE) && json[JSON_KEY_STATUSCODE].toInt() == 100)
return true; return true;
return false; return false;
} }
...@@ -516,6 +532,9 @@ void Control::Request(ReqType type, QStringList list) ...@@ -516,6 +532,9 @@ void Control::Request(ReqType type, QStringList list)
// JsonFactory::GetJsonWithType(type, json, _request, list); // JsonFactory::GetJsonWithType(type, json, _request, list);
if(type == againprint)
_fmId = list[0];
// bool rlt = SendMessageToPayMent(json, outdata, error); // bool rlt = SendMessageToPayMent(json, outdata, error);
JsonFactory::GetJsonWithType(type, json, _posReqJsonObj, list); JsonFactory::GetJsonWithType(type, json, _posReqJsonObj, list);
...@@ -524,12 +543,16 @@ void Control::Request(ReqType type, QStringList list) ...@@ -524,12 +543,16 @@ void Control::Request(ReqType type, QStringList list)
QByteArray jsonArray = QJsonDocument(json).toJson(QJsonDocument::Compact); QByteArray jsonArray = QJsonDocument(json).toJson(QJsonDocument::Compact);
char signStr[MAX_BUF_LEN] = {0}; char signStr[MAX_BUF_LEN] = {0};
GetSPCCSign(jsonArray.data(), signStr);
json["sign"] = QString::fromLocal8Bit(signStr);
QLOG_INFO() << "Sign str: " << signStr; bool rlt = false;
if((rlt = GetSPCCSign(jsonArray.data(), signStr, error)))
{
json["sign"] = QString::fromLocal8Bit(signStr);
QLOG_INFO() << "Sign str: " << signStr;
bool rlt = SendMessageToSBKAPI(json, outdata, error); rlt = SendMessageToSBKAPI(json, outdata, error);
}
if(rlt) if(rlt)
rlt = Control::GetJson(type, rtjson, outdata, error); rlt = Control::GetJson(type, rtjson, outdata, error);
...@@ -540,8 +563,14 @@ void Control::Request(ReqType type, QStringList list) ...@@ -540,8 +563,14 @@ void Control::Request(ReqType type, QStringList list)
_lock.lock(); _lock.lock();
if(_widget != NULL) if(_widget != NULL && type == finds)
{
_widget->ShowWiteJson(rlt, rtjson, error);
}
else
{
_widget->ShowWiteMGS(type, rlt, error); _widget->ShowWiteMGS(type, rlt, error);
}
_lock.unlock(); _lock.unlock();
} }
...@@ -555,7 +584,7 @@ void Control::RequestWithType(ReqType type, QStringList list) ...@@ -555,7 +584,7 @@ void Control::RequestWithType(ReqType type, QStringList list)
Request(type, list); Request(type, list);
} }
void Control::GetSPCCSign(char *in, char *out) bool Control::GetSPCCSign(char *in, char *out, QString &error)
{ {
char mod[MAX_PATH] = { 0 }; char mod[MAX_PATH] = { 0 };
...@@ -567,15 +596,21 @@ void Control::GetSPCCSign(char *in, char *out) ...@@ -567,15 +596,21 @@ void Control::GetSPCCSign(char *in, char *out)
{ {
AddSign addsign = (AddSign)lib.resolve("AddSign"); AddSign addsign = (AddSign)lib.resolve("AddSign");
if(addsign != NULL) { if(addsign != NULL) {
QLOG_INFO() << "Sign return: " << addsign(in, out); if(addsign(in, out)) {
return true;
} else {
error = QString::fromLocal8Bit("获取签名失败.");
QLOG_ERROR() << error;
}
} else { } else {
QLOG_ERROR() << "get function (AddSign) failed"; error = QString::fromLocal8Bit("加载函数(AddSign)失败");
// error = QString::fromLocal8Bit("加载基础组件(fun)失败"); QLOG_ERROR() << error;
} }
} }
else else
{ {
QLOG_ERROR() << "load dll failed"; error = QString::fromLocal8Bit("加载基础组件(FreemudWrapper)失败");
// error = QString::fromLocal8Bit("加载基础组件(dll)失败"); QLOG_ERROR() << error;
} }
return false;
} }
...@@ -46,7 +46,7 @@ private: ...@@ -46,7 +46,7 @@ private:
bool GetJson(ReqType type, QJsonObject &json, const QByteArray array, QString &error); bool GetJson(ReqType type, QJsonObject &json, const QByteArray array, QString &error);
void GetSPCCSign(char *in, char *out); bool GetSPCCSign(char *in, char *out, QString &error);
QString GetMacString(bool isSign=true); QString GetMacString(bool isSign=true);
...@@ -66,7 +66,7 @@ private: ...@@ -66,7 +66,7 @@ private:
//确保exe结束后不会重新弹窗 //确保exe结束后不会重新弹窗
QMutex _lock; QMutex _lock;
QString _fmId;
......
...@@ -146,6 +146,24 @@ public: ...@@ -146,6 +146,24 @@ public:
} }
static void SetStringWith(void *beginptr, int size, const QString &in)
{
char buf[MAX_PRINT_LEN] = { 0 };
char tmpbuf[MAX_PRINT_LEN] = { 0 };
if(in.isEmpty())
return ;
strcpy(buf, in.toUtf8().data());
int len = UTF8ToGBK((unsigned char *)buf, (unsigned char *)tmpbuf, MAX_PRINT_LEN);
memcpy((char *)beginptr, tmpbuf, len - 1);
//qDebug() << tmpbuf;
}
static QJsonValue GetJsonValue(const QJsonObject &jsonObj, const QString &key) static QJsonValue GetJsonValue(const QJsonObject &jsonObj, const QString &key)
{ {
if(jsonObj.contains(key)) { if(jsonObj.contains(key)) {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define MAX_BUF_LEN 25600 #define MAX_BUF_LEN 25600
#define MAX_CHILED_LEN 256 #define MAX_CHILED_LEN 256
#define MAX_PRINT_LEN 4096 #define MAX_PRINT_LEN 12800
#define PRINT_FILE_PATH "C:/Freemud/fmClient/Prints/" #define PRINT_FILE_PATH "C:/Freemud/fmClient/Prints/"
#define PRINT_ENDDAY_FILE_NAME "EndDayPrint.txt" #define PRINT_ENDDAY_FILE_NAME "EndDayPrint.txt"
...@@ -23,23 +23,40 @@ ...@@ -23,23 +23,40 @@
#define JSON_KEY_STATIONID "stationId" #define JSON_KEY_STATIONID "stationId"
#define JSON_KEY_OPERATORID "operatorId" #define JSON_KEY_OPERATORID "operatorId"
#define JSON_KEY_TRANSID "transId" #define JSON_KEY_TRANSID "transId"
#define JSON_KEY_REFUNDID "refundId"
#define JSON_KEY_BUSINESSDATE "businessDate" #define JSON_KEY_BUSINESSDATE "businessDate"
#define JSON_KEY_CODE "code" #define JSON_KEY_CODE "code"
#define JSON_KEY_FMID "fmId" #define JSON_KEY_FMID "fmId"
#define JSON_KEY_TRANSAMOUNT "transAmount" #define JSON_KEY_TRANSAMOUNT "transAmount"
#define JSON_KEY_REFUNDAMOUT "refundAmount" #define JSON_KEY_REFUNDAMOUT "refundAmount"
#define JSON_KEY_ENDTIME "endTime" #define JSON_KEY_ENDTIME "endTime"
#define JSON_KEY_REFUNDID "refundId" #define JSON_KEY_TRANSTIME "transTime"
#define JSON_KEY_PRINTACTION "printAction" #define JSON_KEY_STATE "state"
#define JSON_KEY_STATEMSG "stateMsg"
#define JSON_KEY_METHCODE "paymentMethodCode"
//response //response
#define JSON_KEY_MESSAGE "message" #define JSON_KEY_MESSAGE "message"
#define JSON_KEY_STATUSCODE "statusCode" #define JSON_KEY_STATUSCODE "statusCode"
#define JSON_KEY_PAYACCOUNT "payAccount"
#define JSON_KEY_PAYTRANSID "payTransId"
#define JSON_KEY_TYPE "type"
#define JSON_KEY_FMID "fmId" #define JSON_KEY_FMID "fmId"
#define JSON_KEY_EXT "ext" #define JSON_KEY_EXT "ext"
#define JSON_KEY_PRINT "print" #define JSON_KEY_PRINT "print"
#define JSON_KEY_PRINTACTION "printAction"
#define JSON_KEY_PRINTPATH "path" #define JSON_KEY_PRINTPATH "path"
#define JSON_KET_CLIENTREF "cAlientrefundamount"
#define JSON_KEY_PAYMENTMETHOD "paymentMethod"
#define JSON_KEY_PAYMENTMETHODCODE "paymentMethodCode"
#define JSON_KEY_TRANSAMOUNT "transAmount"
#define JSON_KEY_MERDISCOUNT "merchantDiscount"
#define JSON_KEY_PLTDISCOUNT "platformDiscount"
#define JSON_KEY_UNAMOUNT "undiscountAmount" #define JSON_KEY_UNAMOUNT "undiscountAmount"
#define JSON_KEY_PARTORDERID "partnerOrderId" #define JSON_KEY_PARTORDERID "partnerOrderId"
...@@ -51,6 +68,15 @@ ...@@ -51,6 +68,15 @@
#define JSON_KEY_PRODUCTS_SALESTYPE "salesType" #define JSON_KEY_PRODUCTS_SALESTYPE "salesType"
#define JSON_KEY_PRODUCTS_PRICE "price" #define JSON_KEY_PRODUCTS_PRICE "price"
#define JSON_KEY_TOTALNUM "totalNum"
#define JSON_KEY_QUERYINFO "queryInfo"
#define JSON_KEY_PAGENUM "pageNum"
#define JSON_KEY_PAGESIZE "pageSize"
#define JSON_KEY_BEGINTIME "beginTime"
#define JSON_KEY_ENDTIME "endTime"
#define DEFAULT_JSON_VER_VALUE 1 #define DEFAULT_JSON_VER_VALUE 1
#define DEFAULT_JSON_PRODUCTS_NORMAL "NORMAL" #define DEFAULT_JSON_PRODUCTS_NORMAL "NORMAL"
#define DEFAULT_JSON_PRODUCTS_FREE "FREE" #define DEFAULT_JSON_PRODUCTS_FREE "FREE"
...@@ -59,7 +85,7 @@ ...@@ -59,7 +85,7 @@
#define JSON_REQTYPE_REFUND 62 #define JSON_REQTYPE_REFUND 62
#define JSON_REQTYPE_ENDDAY 82 #define JSON_REQTYPE_ENDDAY 82
#define JSON_REQTYPE_PRINTER 85 #define JSON_REQTYPE_PRINTER 85
#define JSON_REQTYPE_find 2 #define JSON_REQTYPE_FIND 2
#endif // GLOBAL #endif // GLOBAL
...@@ -29,6 +29,10 @@ public: ...@@ -29,6 +29,10 @@ public:
void ShowWiteMGS(ReqType type, bool flag, QString message = QString()); void ShowWiteMGS(ReqType type, bool flag, QString message = QString());
void ShowWiteJson(bool flag, QJsonObject object, QString error);
void setRuning(bool runing);
signals: signals:
void RequestWithType(ReqType type, QStringList list); void RequestWithType(ReqType type, QStringList list);
...@@ -59,6 +63,12 @@ private slots: ...@@ -59,6 +63,12 @@ private slots:
void on_TimeOut(); void on_TimeOut();
void on_btn_find_check_clicked();
void on_btn_find_next_clicked();
void on_btn_find_up_clicked();
void on_btn_mananger_print_shift_clicked(); void on_btn_mananger_print_shift_clicked();
private: private:
...@@ -80,10 +90,16 @@ private: ...@@ -80,10 +90,16 @@ private:
LabelsTimer *_label_pay_timer; LabelsTimer *_label_pay_timer;
LabelsTimer *_label_find_timer;
QMovie *_label_pay_movie; QMovie *_label_pay_movie;
int _line;
bool _need_exit; bool _need_exit;
bool _runing;
ReqType _type; ReqType _type;
}; };
......
...@@ -25,7 +25,7 @@ public: ...@@ -25,7 +25,7 @@ public:
return GetDayEndJson(json, request, list); return GetDayEndJson(json, request, list);
if(type == againprint) if(type == againprint)
return GetAgainPrinteJson(json, request, list); return GetAgainPrinteJson(json, request, list);
if(type == find) if(type == finds)
return GetFindJson(json, request, list); return GetFindJson(json, request, list);
return false; return false;
} }
...@@ -43,6 +43,8 @@ public: ...@@ -43,6 +43,8 @@ public:
return GetEnddayJson(json, reqJson, list); return GetEnddayJson(json, reqJson, list);
case shift: case shift:
return GetShiftJson(json, reqJson, list); return GetShiftJson(json, reqJson, list);
case finds:
return GetFindJson(json, reqJson, list);
default: default:
json = reqJson; json = reqJson;
break; break;
...@@ -67,7 +69,7 @@ public: ...@@ -67,7 +69,7 @@ public:
return GetDayEndResponse(rspJsonObj, response); return GetDayEndResponse(rspJsonObj, response);
if(type == againprint) if(type == againprint)
return GetAgainPrinteResponse(rspJsonObj, response); return GetAgainPrinteResponse(rspJsonObj, response);
if(type == find) if(type == finds)
return GetFindResponse(rspJsonObj, response); return GetFindResponse(rspJsonObj, response);
return false; return false;
} }
...@@ -139,6 +141,7 @@ private: ...@@ -139,6 +141,7 @@ private:
return false; return false;
json = reqJson; json = reqJson;
json[JSON_KEY_CODE] = list[0]; json[JSON_KEY_CODE] = list[0];
json[JSON_KEY_REQTYPE] = JSON_REQTYPE_PAY;
return true; return true;
} }
...@@ -169,6 +172,7 @@ private: ...@@ -169,6 +172,7 @@ private:
return false; return false;
json = reqJson; json = reqJson;
json.insert(JSON_KEY_FMID, list[0]); json.insert(JSON_KEY_FMID, list[0]);
json[JSON_KEY_REQTYPE] = JSON_REQTYPE_REFUND;
json[JSON_KEY_REFUNDAMOUT] = reqJson[JSON_KEY_TRANSAMOUNT]; json[JSON_KEY_REFUNDAMOUT] = reqJson[JSON_KEY_TRANSAMOUNT];
json[JSON_KEY_REFUNDID] = reqJson[JSON_KEY_TRANSID]; json[JSON_KEY_REFUNDID] = reqJson[JSON_KEY_TRANSID];
json.remove(JSON_KEY_TRANSAMOUNT); json.remove(JSON_KEY_TRANSAMOUNT);
...@@ -211,21 +215,74 @@ private: ...@@ -211,21 +215,74 @@ private:
//重打小票 //重打小票
static bool GetAgainPrinteJson(QJsonObject &json, const AlipayRequest &request, QStringList list) static bool GetAgainPrinteJson(QJsonObject &json, const AlipayRequest &request, QStringList list)
{ {
if(list.size() != 2 || list[0].isEmpty() || list[1].isEmpty()) if(!list.isEmpty() && list[0].isEmpty())
return false; return false;
json.insert(JSON_KEY_VER, DEFAULT_JSON_VER_VALUE); json.insert(JSON_KEY_VER, DEFAULT_JSON_VER_VALUE);
json.insert(JSON_KEY_REQTYPE, JSON_REQTYPE_REFUND); json.insert(JSON_KEY_REQTYPE, JSON_REQTYPE_PRINTER);
json.insert(JSON_KEY_PARTNERID, FMTool::GetString((const void *)&(request.PlatNo), 4).toInt()); json.insert(JSON_KEY_PARTNERID, FMTool::GetString((const void *)&(request.PlatNo), 4).toInt());
json.insert(JSON_KEY_STOREID, FMTool::GetString((const void *)&(request.StoreNo), 20)); json.insert(JSON_KEY_STOREID, FMTool::GetString((const void *)&(request.StoreNo), 20));
json.insert(JSON_KEY_STATIONID, FMTool::GetString((const void *)&(request.DeviceNo), 6)); json.insert(JSON_KEY_STATIONID, FMTool::GetString((const void *)&(request.DeviceNo), 6));
json.insert(JSON_KEY_OPERATORID, FMTool::GetString((const void *)&(request.CashierNo), 6)); json.insert(JSON_KEY_OPERATORID, FMTool::GetString((const void *)&(request.CashierNo), 6));
json.insert(JSON_KEY_FMID, list[1]); json.insert(JSON_KEY_FMID, list[0]);
json.insert(JSON_KEY_PRINTACTION, QString("103"));
return true; return true;
} }
//查询流水 //查询流水
static bool GetFindJson(QJsonObject &json, const AlipayRequest &request, QStringList list) static bool GetFindJson(QJsonObject &json, const AlipayRequest &request, QStringList list)
{ {
if(list.size() != 3 || list[0].isEmpty() || list[1].isEmpty())
return false;
QString tmp0 = list[0];
QString tmp1 = list[1];
QString tmp2 = list[2];
QString cur = QDateTime::currentDateTime().toString("hh:mm:ss");
tmp0.append(" 00:00:00");
tmp1.append(QString(" ") + cur);
json.insert(JSON_KEY_VER, DEFAULT_JSON_VER_VALUE);
json.insert(JSON_KEY_REQTYPE, JSON_REQTYPE_FIND);
json.insert(JSON_KEY_PARTNERID, FMTool::GetString((const void *)&(request.PlatNo), 4).toInt());
json.insert(JSON_KEY_STOREID, FMTool::GetString((const void *)&(request.StoreNo), 20));
json.insert(JSON_KEY_STATIONID, FMTool::GetString((const void *)&(request.DeviceNo), 6));
json.insert(JSON_KEY_OPERATORID, FMTool::GetString((const void *)&(request.CashierNo), 6));
json.insert(JSON_KEY_BEGINTIME, tmp0);
json.insert(JSON_KEY_ENDTIME, tmp1);
json.insert(JSON_KEY_PAGESIZE, 10);
json.insert(JSON_KEY_PAGENUM, tmp2.toInt());
json.insert(JSON_KEY_METHCODE, 10001);
return true;
}
static bool GetFindJson(QJsonObject &json, const QJsonObject &request, QStringList list)
{
if(list.size() != 3 || list[0].isEmpty() || list[1].isEmpty())
return false;
QString tmp0 = list[0];
QString tmp1 = list[1];
QString tmp2 = list[2];
QString cur = QDateTime::currentDateTime().toString("hh:mm:ss");
tmp0.append(" 00:00:00");
tmp1.append(QString(" ") + cur);
json.insert(JSON_KEY_VER, DEFAULT_JSON_VER_VALUE);
json.insert(JSON_KEY_REQTYPE, JSON_REQTYPE_FIND);
json.insert(JSON_KEY_PARTNERID, FMTool::GetJsonValue(request, JSON_KEY_PARTNERID));
json.insert(JSON_KEY_STOREID, FMTool::GetJsonValue(request, JSON_KEY_STOREID));
json.insert(JSON_KEY_STATIONID, FMTool::GetJsonValue(request, JSON_KEY_STATIONID));
json.insert(JSON_KEY_OPERATORID, FMTool::GetJsonValue(request, JSON_KEY_OPERATORID));
json.insert(JSON_KEY_BEGINTIME, tmp0);
json.insert(JSON_KEY_ENDTIME, tmp1);
json.insert(JSON_KEY_PAGESIZE, 10);
json.insert(JSON_KEY_PAGENUM, tmp2.toInt());
json.insert(JSON_KEY_METHCODE, 10001);
return true; return true;
} }
...@@ -234,8 +291,7 @@ private: ...@@ -234,8 +291,7 @@ private:
// 支付AlipayResponse // 支付AlipayResponse
static bool GetPayResponse(const QJsonObject &rspJsonObj, AlipayResponse &response) static bool GetPayResponse(const QJsonObject &rspJsonObj, AlipayResponse &response)
{ {
return false;
return true;
} }
// 退款AlipayResponse // 退款AlipayResponse
static bool GetRefundResponse(const QJsonObject &rspJsonObj, AlipayResponse &response) static bool GetRefundResponse(const QJsonObject &rspJsonObj, AlipayResponse &response)
......
...@@ -236,16 +236,17 @@ int main(int argc, char *argv[]) ...@@ -236,16 +236,17 @@ int main(int argc, char *argv[])
AlipayRequest req; AlipayRequest req;
FMTool::SetString(req.BusinessDay, 8 , QString("20170908")); FMTool::SetString(req.BusinessDay, 8 , QString("20170909"));
FMTool::SetString(req.TransType, 2 , QString("30")); FMTool::SetString(req.TransType, 2 , QString("10"));
FMTool::SetString(req.PlatNo, 4, QString("1443")); FMTool::SetString(req.PlatNo, 4, QString("1443"));
FMTool::SetString(req.TransTime, 6, QString("130301")); FMTool::SetString(req.TransTime, 6, QString("130301"));
FMTool::SetString(req.StoreNo, 20 , QString("17607")); FMTool::SetString(req.StoreNo, 20 , QString("17607"));
FMTool::SetString(req.DeviceNo, 6 , QString("1")); FMTool::SetString(req.DeviceNo, 6 , QString("1"));
FMTool::SetString(req.CashierNo, 6 , QString("0123")); FMTool::SetString(req.CashierNo, 6 , QString("0123"));
FMTool::SetString(req.CashTraceNo, 6 , QString("123123")); FMTool::SetString(req.CashTraceNo, 6 , QString("16723"));
FMTool::SetString(req.OriginTrace, 64 , QString("7871170818A00002005"));
FMTool::SetString(req.Amount, 12, QString("1")); FMTool::SetString(req.Amount, 12, QString("1"));
FMTool::SetString(req.Reserved1, 48 , QString("124112312312312312312----32")); FMTool::SetString(req.Reserved1, 48 , QString("12411235821335894422"));
req.item_line_qty[0] = '2'; req.item_line_qty[0] = '2';
req.item_line_qty[1] = ' '; req.item_line_qty[1] = ' ';
...@@ -288,7 +289,7 @@ int main(int argc, char *argv[]) ...@@ -288,7 +289,7 @@ int main(int argc, char *argv[])
// control.Start(as, b); // control.Start(as, b);
char spccIn[MAX_BUF_LEN] = "{\"fmId\":\"0123456789012345678\",\"reqType\":351,\"storeId\":\"1713\",\"stationId\":\"1\",\"partnerId\":1443,\"operatorId\":\"sssaw\",\"transId\":\"52342342323806\",\"transAmount\":8000,\"partnerOrderId\":\"909911039993720192019\",\"businessDate\":\"20170508\",\"products\":[{\"pid\":\"123\",\"name\":\"中杯拿铁\",\"price\":321,\"salesType\":\"NORMAL\"}]}"; char spccIn[MAX_BUF_LEN] = "{\"fmId\":\"0123456789012345678\",\"reqType\":353,\"storeId\":\"1713\",\"stationId\":\"1\",\"partnerId\":1443,\"operatorId\":\"sssaw\",\"transId\":\"52342342323806\",\"transAmount\":8000,\"partnerOrderId\":\"909911039993720192019\",\"businessDate\":\"20170508\",\"products\":[{\"pid\":\"123\",\"name\":\"中杯拿铁\",\"price\":321,\"salesType\":\"NORMAL\"}]}";
control.Start(spccIn, b); control.Start(spccIn, b);
return a.exec(); return a.exec();
......
...@@ -3,19 +3,21 @@ ...@@ -3,19 +3,21 @@
typedef enum typedef enum
{ {
manage = 10, sign,
pay = 30, manage,
refund = 40, pay,
refund,
finds,
endday, endday,
shift, shift,
againprint, againprint,
find = 80,
sign = 90, SPCC_sign = 350,
SPCC_sign= 350,
SPCC_manage, SPCC_manage,
SPCC_pay, SPCC_pay,
SPCC_refund, SPCC_refund,
SPCC_find SPCC_finds
} ReqType; } ReqType;
struct EFTItem struct EFTItem
......
...@@ -13,9 +13,10 @@ TARGET = sbkpay ...@@ -13,9 +13,10 @@ TARGET = sbkpay
include("./QsLog/QsLog.pri") include("./QsLog/QsLog.pri")
CONFIG += C++11 CONFIG += C++11 SBKDLL
#CONFIG += SBKTEST
CONFIG += SBKDLL #DEFINES += SBKTEST
#DEFINES += SBKDLL
include($$PWD/qtwinmigrate/src/qtwinmigrate.pri) include($$PWD/qtwinmigrate/src/qtwinmigrate.pri)
......
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