Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmp_vip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhenfei.zhang
fmp_vip
Commits
ea7f1f7d
Commit
ea7f1f7d
authored
Jul 25, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 修复认证返回的fm_open_id为空问题。 2. 使用全局Session,支付时如果Session中已有fm_open_id不再次认证。
parent
8bebb516
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
39 additions
and
3 deletions
+39
-3
fmvipdispatcher.cpp
+8
-1
fmvipdispatcher.h
+3
-0
task/session.cpp
+12
-1
task/session.h
+12
-0
task/tasklogin.cpp
+1
-1
task/taskpay.cpp
+3
-0
No files found.
fmvipdispatcher.cpp
View file @
ea7f1f7d
...
@@ -31,7 +31,11 @@ FMVipDispatcher::~FMVipDispatcher()
...
@@ -31,7 +31,11 @@ FMVipDispatcher::~FMVipDispatcher()
void
FMVipDispatcher
::
doTask
(
const
QByteArray
&
reqData
,
QByteArray
&
rspData
)
void
FMVipDispatcher
::
doTask
(
const
QByteArray
&
reqData
,
QByteArray
&
rspData
)
{
{
FMP_INFO
()
<<
"Recv POS reqData: "
<<
reqData
;
FMP_INFO
()
<<
"Recv POS reqData: "
<<
reqData
;
Session
session
;
// 如果Session已经超过60秒,则清空
if
(
session
.
createdTime
().
secsTo
(
QDateTime
::
currentDateTime
())
>
60
)
{
session
.
clear
();
}
QJsonParseError
error
;
QJsonParseError
error
;
QJsonDocument
doc
=
QJsonDocument
::
fromJson
(
reqData
,
&
error
);
QJsonDocument
doc
=
QJsonDocument
::
fromJson
(
reqData
,
&
error
);
...
@@ -43,11 +47,13 @@ void FMVipDispatcher::doTask(const QByteArray &reqData, QByteArray &rspData)
...
@@ -43,11 +47,13 @@ void FMVipDispatcher::doTask(const QByteArray &reqData, QByteArray &rspData)
case
FM_Login
:
{
case
FM_Login
:
{
TaskLogin
taskLogin
(
jsonObj
,
&
session
);
TaskLogin
taskLogin
(
jsonObj
,
&
session
);
rspData
=
taskLogin
.
doTask
();
rspData
=
taskLogin
.
doTask
();
session
.
resetCreatedTime
();
break
;
break
;
}
}
case
FM_Pay
:
{
case
FM_Pay
:
{
TaskPay
taskPay
(
jsonObj
,
&
session
);
TaskPay
taskPay
(
jsonObj
,
&
session
);
rspData
=
taskPay
.
doTask
();
rspData
=
taskPay
.
doTask
();
session
.
clear
();
break
;
break
;
}
}
...
@@ -96,6 +102,7 @@ void FMVipDispatcher::doTask(const QByteArray &reqData, QByteArray &rspData)
...
@@ -96,6 +102,7 @@ void FMVipDispatcher::doTask(const QByteArray &reqData, QByteArray &rspData)
case
FM_Final
:
{
case
FM_Final
:
{
TaskFinal
taskFinal
(
jsonObj
,
&
session
);
TaskFinal
taskFinal
(
jsonObj
,
&
session
);
rspData
=
taskFinal
.
doTask
();
rspData
=
taskFinal
.
doTask
();
session
.
clear
();
break
;
break
;
}
}
default
:
default
:
...
...
fmvipdispatcher.h
View file @
ea7f1f7d
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
#include <QMutex>
#include <QMutex>
#include <QWaitCondition>
#include <QWaitCondition>
#include <QSystemTrayIcon>
#include <QSystemTrayIcon>
#include <session.h>
class
FMTask
;
class
FMTask
;
class
FMPVipServer
;
class
FMPVipServer
;
...
@@ -24,6 +25,8 @@ public:
...
@@ -24,6 +25,8 @@ public:
private
:
private
:
FMTask
*
fmTask
;
FMTask
*
fmTask
;
ctkPluginContext
*
_ctx
;
ctkPluginContext
*
_ctx
;
Session
session
;
};
};
#endif // FMVIPDISPATCHER_H
#endif // FMVIPDISPATCHER_H
task/session.cpp
View file @
ea7f1f7d
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
Session
::
Session
()
Session
::
Session
()
{
{
_createdTime
=
QDateTime
::
currentDateTime
();
}
}
Session
::~
Session
()
Session
::~
Session
()
...
@@ -45,3 +45,14 @@ QMap<QString, Coupon> Session::getCouponMap(const QString key)
...
@@ -45,3 +45,14 @@ QMap<QString, Coupon> Session::getCouponMap(const QString key)
}
}
return
couponMap
;
return
couponMap
;
}
}
void
Session
::
clear
()
{
_sessionDataMap
.
clear
();
}
void
Session
::
reset
()
{
_sessionDataMap
.
clear
();
resetCreatedTime
();
}
task/session.h
View file @
ea7f1f7d
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#define SESSION_H
#define SESSION_H
#include <QVariant>
#include <QVariant>
#include <QDateTime>
#include "global.h"
#include "global.h"
#include "coupon.h"
#include "coupon.h"
...
@@ -29,8 +30,19 @@ public:
...
@@ -29,8 +30,19 @@ public:
QMap
<
QString
,
QVariant
>
sessionDataMap
()
const
{
return
this
->
_sessionDataMap
;}
QMap
<
QString
,
QVariant
>
sessionDataMap
()
const
{
return
this
->
_sessionDataMap
;}
void
setSessionDataMap
(
const
QMap
<
QString
,
QVariant
>
&
dataMap
)
{
this
->
_sessionDataMap
=
dataMap
;}
void
setSessionDataMap
(
const
QMap
<
QString
,
QVariant
>
&
dataMap
)
{
this
->
_sessionDataMap
=
dataMap
;}
// 清空Session
void
clear
();
void
reset
();
// Session的创建时间
QDateTime
createdTime
()
{
return
_createdTime
;
}
// 将Session的创建时间重置为当前时间
void
resetCreatedTime
()
{
this
->
_createdTime
=
QDateTime
::
currentDateTime
();}
private
:
private
:
QMap
<
QString
,
QVariant
>
_sessionDataMap
;
QMap
<
QString
,
QVariant
>
_sessionDataMap
;
QDateTime
_createdTime
;
};
};
#endif // SESSION_H
#endif // SESSION_H
task/tasklogin.cpp
View file @
ea7f1f7d
...
@@ -37,7 +37,7 @@ void TaskLogin::packagePOSRsp()
...
@@ -37,7 +37,7 @@ void TaskLogin::packagePOSRsp()
posRspJsonObj
[
"statusCode"
]
=
getServerJsonValue
(
"statusCode"
).
toInt
();
posRspJsonObj
[
"statusCode"
]
=
getServerJsonValue
(
"statusCode"
).
toInt
();
posRspJsonObj
[
"msg"
]
=
getServerJsonValue
(
"msg"
).
toString
();
posRspJsonObj
[
"msg"
]
=
getServerJsonValue
(
"msg"
).
toString
();
posRspJsonObj
[
"prompt"
]
=
getServerJsonValue
(
"prompt"
).
toInt
();
posRspJsonObj
[
"prompt"
]
=
getServerJsonValue
(
"prompt"
).
toInt
();
posRspJsonObj
[
"fm_open_id"
]
=
getServerJsonValue
(
"account"
).
toString
();
posRspJsonObj
[
"fm_open_id"
]
=
getServerJsonValue
(
PosProps
.
Fm_open_id
).
toString
();
posRspJsonObj
[
"account"
]
=
getServerJsonValue
(
"memberNo"
).
toString
();
posRspJsonObj
[
"account"
]
=
getServerJsonValue
(
"memberNo"
).
toString
();
posRspJsonObj
[
"type_code"
]
=
getServerJsonValue
(
"typecode"
).
toString
();
posRspJsonObj
[
"type_code"
]
=
getServerJsonValue
(
"typecode"
).
toString
();
posRspJsonObj
[
"type_name"
]
=
getServerJsonValue
(
"typename"
).
toString
();
posRspJsonObj
[
"type_name"
]
=
getServerJsonValue
(
"typename"
).
toString
();
...
...
task/taskpay.cpp
View file @
ea7f1f7d
...
@@ -29,6 +29,7 @@ QByteArray TaskPay::doTask()
...
@@ -29,6 +29,7 @@ QByteArray TaskPay::doTask()
// return ret;
// return ret;
// }
// }
if
(
session
()
->
data
(
PosProps
.
Fm_open_id
).
toString
()
==
0
)
{
preTask
=
new
TaskLogin
(
posReqJsonObj
,
_session
,
this
);
preTask
=
new
TaskLogin
(
posReqJsonObj
,
_session
,
this
);
preTask
->
session
()
->
addData
(
PosProps
.
FM_Type
,
FM_Pay
);
preTask
->
session
()
->
addData
(
PosProps
.
FM_Type
,
FM_Pay
);
QByteArray
loginRst
=
preTask
->
doTask
();
QByteArray
loginRst
=
preTask
->
doTask
();
...
@@ -36,6 +37,8 @@ QByteArray TaskPay::doTask()
...
@@ -36,6 +37,8 @@ QByteArray TaskPay::doTask()
return
loginRst
;
return
loginRst
;
}
}
this
->
_session
=
preTask
->
session
();
this
->
_session
=
preTask
->
session
();
}
// couponThread = new TaskCouponThread(posReqJsonObj, _session, this);
// couponThread = new TaskCouponThread(posReqJsonObj, _session, this);
// couponThread->start();
// couponThread->start();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment