Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sbkpay
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
sbkpay
Commits
c8dd9d79
Commit
c8dd9d79
authored
Aug 25, 2017
by
李定达
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.移植50%
parent
5109f462
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
147 additions
and
6 deletions
+147
-6
sbkpay/DataProcess/fmglobal.h
+10
-1
sbkpay/DataProcess/fmnetwork.cpp
+61
-0
sbkpay/DataProcess/fmnetwork.h
+1
-1
sbkpay/DataProcess/rollback.cpp
+60
-1
sbkpay/DataProcess/rollback.h
+4
-0
sbkpay/DataProcess/tools.h
+8
-0
sbkpay/rspfactory.h
+1
-1
sbkpay/sbkpay.pro
+1
-1
sbkpay/sbkpay.pro.user
+1
-1
No files found.
sbkpay/DataProcess/fmglobal.h
View file @
c8dd9d79
...
...
@@ -20,11 +20,20 @@
#define JSON_KEY_STATUS "statusCode"
#define JSON_KEY_SERPBLICKEY "serverPublicKey"
#define JSON_KEY_CLIENTPRIKEY "clientPrivateKey"
#define JSON_KEY_REQTYPE "reqType"
#define VALUE_URL "all/url"
#define VALUE_HOST "all/host"
#define VALUE_TIMEOUT "all/timeout"
#define CFG_KEY "template"
#define TMP_JSON "json.ini"
#define DB_ORDER "
order
.db"
#define DB_ORDER "
rollback
.db"
#define DB_TABLE_NAME "orderlist"
#define USERCONFIG_NAME "sbkpay.ini"
#define MAX_ORDERID_LEN 200
#define SQL_KEY_ORDERID "orderid"
#define SQL_KET_CONTENT "content"
#endif
sbkpay/DataProcess/fmnetwork.cpp
View file @
c8dd9d79
#include "fmnetwork.h"
#include <QTimer>
#include <QSettings>
#include <QEventLoop>
#include <QSslConfiguration>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QJsonDocument>
#include "tools.h"
#include "fmglobal.h"
#include "QsLog.h"
FMNetWork
::
FMNetWork
(
QObject
*
parent
)
:
QObject
(
parent
)
{
}
bool
FMNetWork
::
HttpPost
(
QByteArray
array
,
QString
content
,
QString
accept
,
int
timeout
)
{
QString
path
;
ToolS
::
GetPath
(
path
);
QString
url
=
QSettings
(
path
+
"
\\
"
+
USERCONFIG_NAME
,
QSettings
::
IniFormat
).
value
(
VALUE_URL
).
toString
();
QString
host
=
QSettings
(
path
+
"
\\
"
+
USERCONFIG_NAME
,
QSettings
::
IniFormat
).
value
(
VALUE_HOST
).
toString
();
QEventLoop
loop
;
QTimer
timer
;
QSslConfiguration
config
;
config
.
setPeerVerifyMode
(
QSslSocket
::
VerifyNone
);
config
.
setProtocol
(
QSsl
::
SslV3
);
QNetworkAccessManager
manger
;
QNetworkRequest
request
(
url
);
request
.
setSslConfiguration
(
config
);
request
.
setRawHeader
(
"Content-Type"
,
content
);
request
.
setRawHeader
(
"Accept"
,
accept
);
request
.
setRawHeader
(
"host"
,
host
);
request
.
setRawHeader
(
"Authorization"
,
"Basic dXBzLWNsaWVudDo2VGk4TjBXNzRyb1A="
);
QNetworkReply
*
reply
=
manger
.
post
(
request
,
QJsonDocument
(
json
).
toJson
(
QJsonDocument
::
Compact
));
connect
(
&
timer
,
&
QTimer
::
timeout
,
&
loop
,
&
QEventLoop
::
quit
);
connect
(
&
manger
,
&
QNetworkAccessManager
::
finished
,
&
loop
,
&
QEventLoop
::
quit
);
connect
(
reply
,
static_cast
<
void
(
QNetworkReply
::*
)(
QNetworkReply
::
NetworkError
)
>
(
&
QNetworkReply
::
error
),
&
loop
,
&
QEventLoop
::
quit
);
timer
.
start
(
timeout
*
1000
);
loop
.
exec
();
reply
->
deleteLater
();
if
(
reply
->
error
()
!=
QNetworkReply
::
NoError
)
{
error
=
QString
::
fromLocal8Bit
(
"网络异常"
);
return
false
;
}
array
=
reply
->
readAll
();
QLOG_INFO
()
<<
array
;
return
true
;
}
sbkpay/DataProcess/fmnetwork.h
View file @
c8dd9d79
...
...
@@ -9,7 +9,7 @@ class FMNetWork : public QObject
public
:
explicit
FMNetWork
(
QObject
*
parent
=
0
);
void
HttpPost
(
QString
url
,
QStringList
&
headlist
);
static
bool
HttpPost
(
QByteArray
array
,
QString
content
,
QString
accept
,
int
timeout
=
60
);
};
...
...
sbkpay/DataProcess/rollback.cpp
View file @
c8dd9d79
#include "rollback.h"
#include "fmglobal.h"
#include <QSqlQuery>
#include <QEventLoop>
#include <QJsonDocument>
#include <QTimer>
#include <QSettings>
#include <QJsonObject>
#include "tools.h"
#include "QsLog.h"
#include "cretopt.h"
RollBack
::
RollBack
(
QObject
*
parent
)
:
QThread
(
parent
)
{
...
...
@@ -20,11 +28,62 @@ RollBack::~RollBack()
}
void
RollBack
::
RollWiteQuery
(
QSqlQuery
&
query
)
{
while
(
query
.
next
())
{
QString
parnetid
=
query
.
value
(
0
).
toString
();
QString
content
=
query
.
value
(
1
).
toString
();
QJsonDocument
jsonDocument
=
QJsonDocument
::
fromJson
(
content
.
toUtf8
());
if
(
jsonDocument
.
isNull
()
)
{
QLOG_ERROR
()
<<
"content not json:"
<<
rps
;
_db
->
dlt
(
DB_TABLE_NAME
,
QString
(
"%1='%2'"
).
arg
(
SQL_KEY_ORDERID
).
arg
(
parnetid
));
}
QJsonObject
json
=
jsonDocument
.
object
();
json
.
insert
(
JSON_KEY_REQTYPE
,
3
);
if
(
!
CretOperate
::
GetSign
(
json
))
{
QLOG_ERROR
()
<<
"get sign error"
;
continue
;
}
}
}
void
RollBack
::
run
()
{
while
(
isInterruptionRequested
())
{
QString
path
;
ToolS
::
GetPath
(
path
);
int
timeout
=
QSettings
(
path
+
"
\\
"
+
USERCONFIG_NAME
,
QSettings
::
IniFormat
).
value
(
VALUE_HOST
).
toInt
();
do
{
QSqlQuery
query
;
if
(
!
_db
->
find
(
DB_TABLE_NAME
,
query
))
break
;
RollWiteQuery
(
query
);
}
while
(
0
);
QEventLoop
loop
;
QTimer
timer
;
connect
(
&
timer
,
&
QTimer
::
timeout
,
&
loop
,
&
QEventLoop
::
quit
);
timer
.
start
(
timeout
*
1000
);
loop
.
exec
();
}
}
sbkpay/DataProcess/rollback.h
View file @
c8dd9d79
...
...
@@ -5,6 +5,8 @@
#include <QPointer>
#include "fmp_database.h"
class
RollBack
:
public
QThread
{
Q_OBJECT
...
...
@@ -12,6 +14,8 @@ public:
RollBack
(
QObject
*
parent
=
0
);
~
RollBack
();
void
RollWiteQuery
(
QSqlQuery
&
query
);
void
run
();
private
:
...
...
sbkpay/DataProcess/tools.h
View file @
c8dd9d79
...
...
@@ -6,12 +6,20 @@
#include <Windows.h>
#include <string>
#include <QString>
EXTERN_C
IMAGE_DOS_HEADER
__ImageBase
;
class
ToolS
{
public
:
static
void
GetPath
(
QString
&
path
)
{
char
tmppath
[
MAX_PATH
]
=
{
0
};
GetProcPath
(
tmppath
);
path
=
QString
(
tmppath
);
}
static
void
GetProcPath
(
char
*
pathBuf
)
{
int
curPos
;
...
...
sbkpay/rspfactory.h
View file @
c8dd9d79
...
...
@@ -125,7 +125,7 @@ private:
QString
number
;
if
(
json
[
JSON_KEY_STATUSCODE
].
toInt
()
!
=
100
)
if
(
json
[
JSON_KEY_STATUSCODE
].
toInt
()
=
=
100
)
{
struct
EFTItem
*
item
=
(
struct
EFTItem
*
)
response
.
EFT_Detail_information
[
0
];
...
...
sbkpay/sbkpay.pro
View file @
c8dd9d79
...
...
@@ -4,7 +4,7 @@
#
#-------------------------------------------------
QT
+=
core
gui
concurrent
sql
QT
+=
core
gui
concurrent
sql
network
greaterThan
(
QT_MAJOR_VERSION
,
4
)
:
QT
+=
widgets
...
...
sbkpay/sbkpay.pro.user
View file @
c8dd9d79
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.5.1, 2017-08-25T1
1:52:01
. -->
<!-- Written by QtCreator 3.5.1, 2017-08-25T1
4:34:56
. -->
<qtcreator>
<data>
<variable>
EnvironmentId
</variable>
...
...
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