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
80e41b72
Commit
80e41b72
authored
Aug 18, 2017
by
李定达
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.查询完成; 2.添加支付成功返回的用户实付商户优惠等信息
parent
e81624bf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
344 additions
and
30 deletions
+344
-30
sbkpay/control.cpp
+24
-1
sbkpay/global.h
+23
-2
sbkpay/hostwidget.cpp
+193
-9
sbkpay/hostwidget.h
+13
-0
sbkpay/hostwidget.ui
+0
-0
sbkpay/jsonfactory.h
+33
-10
sbkpay/lib/lib.zip
+0
-0
sbkpay/main.cpp
+3
-2
sbkpay/requestmodel.h
+1
-1
sbkpay/rspfactory.h
+52
-3
sbkpay/sbkpay.pro
+1
-1
sbkpay/sbkpay.pro.user
+1
-1
No files found.
sbkpay/control.cpp
View file @
80e41b72
...
...
@@ -10,6 +10,9 @@
#include <QSettings>
#include <QJsonObject>
#include <QEventLoop>
#include <QFont>
#include <QFontDatabase>
#include <QApplication>
#include <QJsonDocument>
#include <Windows.h>
...
...
@@ -43,6 +46,13 @@ Control::Control(QObject *parent) : QObject(parent), _widget(NULL)
void
Control
::
Start
(
const
char
*
indata
,
char
*
outdata
)
{
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
;
if
(
_widget
==
NULL
)
...
...
@@ -228,8 +238,15 @@ bool Control::GetJson(ReqType type,QJsonObject &json, const QByteArray array, QS
if
(
json
.
contains
(
JSON_KEY_MESSAGE
))
error
=
json
[
JSON_KEY_MESSAGE
].
toString
();
if
(
json
.
contains
(
JSON_KEY_MESSAGE
)
&&
json
.
contains
(
JSON_KEY_STATUSCODE
)
&&
json
[
JSON_KEY_STATUSCODE
].
toInt
()
==
302
)
error
=
QString
::
fromLocal8Bit
(
"签名过期,请获取签名"
);
if
(
json
.
contains
(
JSON_KEY_STATUSCODE
)
&&
json
[
JSON_KEY_STATUSCODE
].
toInt
()
==
100
)
return
true
;
return
false
;
}
...
...
@@ -249,8 +266,14 @@ void Control::Request(ReqType type, QStringList list)
SetResPonseWithMessage
(
"23"
,
error
);
_lock
.
lock
();
if
(
_widget
!=
NULL
)
if
(
_widget
!=
NULL
&&
type
==
finds
)
{
_widget
->
ShowWiteJson
(
rlt
,
rtjson
,
error
);
}
else
{
_widget
->
ShowWiteMGS
(
type
,
rlt
,
error
);
}
_lock
.
unlock
();
}
...
...
sbkpay/global.h
View file @
80e41b72
...
...
@@ -3,7 +3,7 @@
#define MAX_BUF_LEN 25600
#define MAX_CHILED_LEN 256
#define MAX_PRINT_LEN
4096
#define MAX_PRINT_LEN
8192
#define PRINT_FILE_NAME "print.txt"
...
...
@@ -19,12 +19,18 @@
#define JSON_KEY_STATIONID "stationId"
#define JSON_KEY_OPERATORID "operatorId"
#define JSON_KEY_TRANSID "transId"
#define JSON_KEY_REFUNDID "refundId"
#define JSON_KEY_BUSINESSDATE "businessDate"
#define JSON_KEY_CODE "code"
#define JSON_KEY_FMID "fmId"
#define JSON_KEY_TRANSAMOUNT "transAmount"
#define JSON_KEY_REFUNDAMOUT "refundAmount"
#define JSON_KEY_ENDTIME "endTime"
#define JSON_KEY_TRANSTIME "transTime"
#define JSON_KEY_STATE "state"
#define JSON_KEY_STATEMSG "stateMsg"
#define JSON_KEY_METHCODE "paymentMethodCode"
//response
#define JSON_KEY_MESSAGE "message"
...
...
@@ -32,6 +38,12 @@
#define JSON_KEY_FMID "fmId"
#define JSON_KEY_EXT "ext"
#define JSON_KEY_PRINT "print"
#define JSON_KEY_PRINTACTION "printAction"
#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_PARTORDERID "partnerOrderId"
...
...
@@ -44,6 +56,15 @@
#define JSON_KEY_PRODUCTS_SALESTYPE "salesType"
#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_PRODUCTS_NORMAL "NORMAL"
#define DEFAULT_JSON_PRODUCTS_FREE "FREE"
...
...
@@ -52,7 +73,7 @@
#define JSON_REQTYPE_REFUND 62
#define JSON_REQTYPE_ENDDAY 82
#define JSON_REQTYPE_PRINTER 85
#define JSON_REQTYPE_
find
2
#define JSON_REQTYPE_
FIND
2
#endif // GLOBAL
sbkpay/hostwidget.cpp
View file @
80e41b72
This diff is collapsed.
Click to expand it.
sbkpay/hostwidget.h
View file @
80e41b72
...
...
@@ -28,6 +28,7 @@ public:
void
ShowWiteMGS
(
ReqType
type
,
bool
flag
,
QString
message
=
QString
());
void
ShowWiteJson
(
bool
flag
,
QJsonObject
object
,
QString
error
);
signals
:
void
RequestWithType
(
ReqType
type
,
QStringList
list
);
...
...
@@ -58,6 +59,12 @@ private slots:
void
on_TimeOut
();
void
on_btn_find_check_clicked
();
void
on_btn_find_next_clicked
();
void
on_btn_find_up_clicked
();
private
:
void
ShowWidget
(
QWidget
*
showwidget
);
...
...
@@ -74,10 +81,16 @@ private:
LabelsTimer
*
_label_pay_timer
;
LabelsTimer
*
_label_find_timer
;
QMovie
*
_label_pay_movie
;
int
_line
;
bool
_need_exit
;
int
_refundamout
;
ReqType
_type
;
};
...
...
sbkpay/hostwidget.ui
View file @
80e41b72
This diff is collapsed.
Click to expand it.
sbkpay/jsonfactory.h
View file @
80e41b72
...
...
@@ -9,6 +9,7 @@
#include <QStringList>
#include <QJsonParseError>
#include <QJsonDocument>
#include <QDateTime>
//接受pos的请求转化为json
class
JsonFactory
...
...
@@ -24,7 +25,7 @@ public:
return
GetDayEndJson
(
json
,
request
,
list
);
if
(
type
==
againprint
)
return
GetAgainPrinteJson
(
json
,
request
,
list
);
if
(
type
==
find
)
if
(
type
==
find
s
)
return
GetFindJson
(
json
,
request
,
list
);
return
false
;
}
...
...
@@ -47,7 +48,7 @@ public:
return
GetDayEndResponse
(
rspJsonObj
,
response
);
if
(
type
==
againprint
)
return
GetAgainPrinteResponse
(
rspJsonObj
,
response
);
if
(
type
==
find
)
if
(
type
==
find
s
)
return
GetFindResponse
(
rspJsonObj
,
response
);
return
false
;
}
...
...
@@ -116,7 +117,7 @@ private:
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_
TRANS
ID
,
FMTool
::
GetString
((
const
void
*
)
&
(
request
.
CashTraceNo
),
6
));
json
.
insert
(
JSON_KEY_
REFUND
ID
,
FMTool
::
GetString
((
const
void
*
)
&
(
request
.
CashTraceNo
),
6
));
json
.
insert
(
JSON_KEY_BUSINESSDATE
,
FMTool
::
GetString
((
const
void
*
)
&
(
request
.
BusinessDay
),
8
));
json
.
insert
(
JSON_KEY_FMID
,
list
[
0
]);
json
.
insert
(
JSON_KEY_REFUNDAMOUT
,
FMTool
::
GetString
((
const
void
*
)
&
(
request
.
Amount
),
12
).
toInt
());
...
...
@@ -141,31 +142,53 @@ private:
//重打小票
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
;
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_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_FMID
,
list
[
1
]);
json
.
insert
(
JSON_KEY_FMID
,
list
[
0
]);
json
.
insert
(
JSON_KEY_PRINTACTION
,
QString
(
"103"
));
return
true
;
}
//查询流水
static
bool
GetFindJson
(
QJsonObject
&
json
,
const
AlipayRequest
&
request
,
QStringList
list
)
{
return
true
;
}
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
;
}
// 支付AlipayResponse
static
bool
GetPayResponse
(
const
QJsonObject
&
rspJsonObj
,
AlipayResponse
&
response
)
{
return
true
;
return
false
;
}
// 退款AlipayResponse
static
bool
GetRefundResponse
(
const
QJsonObject
&
rspJsonObj
,
AlipayResponse
&
response
)
...
...
sbkpay/lib/lib.zip
0 → 100644
View file @
80e41b72
File added
sbkpay/main.cpp
View file @
80e41b72
...
...
@@ -237,13 +237,14 @@ int main(int argc, char *argv[])
AlipayRequest
req
;
FMTool
::
SetString
(
req
.
BusinessDay
,
8
,
QString
(
"20170908"
));
FMTool
::
SetString
(
req
.
TransType
,
2
,
QString
(
"
3
0"
));
FMTool
::
SetString
(
req
.
TransType
,
2
,
QString
(
"
1
0"
));
FMTool
::
SetString
(
req
.
PlatNo
,
4
,
QString
(
"1443"
));
FMTool
::
SetString
(
req
.
TransTime
,
6
,
QString
(
"130301"
));
FMTool
::
SetString
(
req
.
StoreNo
,
20
,
QString
(
"17607"
));
FMTool
::
SetString
(
req
.
DeviceNo
,
6
,
QString
(
"1"
));
FMTool
::
SetString
(
req
.
CashierNo
,
6
,
QString
(
"0123"
));
FMTool
::
SetString
(
req
.
CashTraceNo
,
6
,
QString
(
"123123"
));
FMTool
::
SetString
(
req
.
CashTraceNo
,
6
,
QString
(
"123123"
));
FMTool
::
SetString
(
req
.
OriginTrace
,
64
,
QString
(
"*1232132132131234565354342-"
));
FMTool
::
SetString
(
req
.
Amount
,
12
,
QString
(
"1"
));
FMTool
::
SetString
(
req
.
Reserved1
,
48
,
QString
(
"124112312312312312312----32"
));
req
.
item_line_qty
[
0
]
=
'2'
;
...
...
sbkpay/requestmodel.h
View file @
80e41b72
...
...
@@ -7,7 +7,7 @@ typedef enum
refund
,
endday
,
againprint
,
find
,
find
s
,
sign
}
ReqType
;
...
...
sbkpay/rspfactory.h
View file @
80e41b72
...
...
@@ -28,7 +28,7 @@ public:
return
GetDayEndResponse
(
response
,
json
);
if
(
type
==
againprint
)
return
GetAgainPrinteResponse
(
response
,
json
);
if
(
type
==
find
)
if
(
type
==
find
s
)
return
GetFindResponse
(
response
,
json
);
return
false
;
}
...
...
@@ -56,6 +56,46 @@ private:
FMTool
::
SetString
(
response
.
ResponseMsg
,
40
,
json
[
JSON_KEY_MESSAGE
].
toString
());
FMTool
::
SetString
(
response
.
CardTraceNo
,
40
,
json
[
JSON_KEY_FMID
].
toString
());
FMTool
::
SetString
(
response
.
NeedPrint
,
2
,
QString
(
"01"
));
int
transAmount
=
json
[
JSON_KEY_TRANSAMOUNT
].
toInt
();
int
merchantDiscount
=
json
[
JSON_KEY_MERDISCOUNT
].
toInt
();
int
platformDiscount
=
json
[
JSON_KEY_PLTDISCOUNT
].
toInt
();
int
userAmount
=
transAmount
-
merchantDiscount
-
platformDiscount
;
//用户实付
struct
EFTItem
*
item
=
(
struct
EFTItem
*
)
response
.
EFT_Detail_information
[
0
];
FMTool
::
SetString
((
void
*
)
&
(
item
->
billType
),
1
,
"1"
);
FMTool
::
SetString
((
void
*
)
&
(
item
->
billId
),
8
,
QString
(
"36464"
));
FMTool
::
SetString
((
void
*
)
&
(
item
->
amount
),
12
,
QString
::
number
(
userAmount
));
FMTool
::
SetString
((
void
*
)
&
(
item
->
transactionNum
),
64
,
json
[
JSON_KEY_PAYMENTMETHODCODE
].
toString
());
if
(
merchantDiscount
!=
0
)
{
//商户补贴
struct
EFTItem
*
item
=
(
struct
EFTItem
*
)
response
.
EFT_Detail_information
[
1
];
FMTool
::
SetString
((
void
*
)
&
(
item
->
billType
),
1
,
"1"
);
FMTool
::
SetString
((
void
*
)
&
(
item
->
billId
),
8
,
QString
(
"36466"
));
FMTool
::
SetString
((
void
*
)
&
(
item
->
amount
),
12
,
QString
::
number
(
merchantDiscount
));
FMTool
::
SetString
((
void
*
)
&
(
item
->
transactionNum
),
64
,
json
[
JSON_KEY_PAYMENTMETHODCODE
].
toString
());
}
if
(
platformDiscount
!=
0
)
{
//支付宝补贴
struct
EFTItem
*
item
=
(
struct
EFTItem
*
)
response
.
EFT_Detail_information
[
2
];
FMTool
::
SetString
((
void
*
)
&
(
item
->
billType
),
1
,
"1"
);
FMTool
::
SetString
((
void
*
)
&
(
item
->
billId
),
8
,
QString
(
"10001"
));
FMTool
::
SetString
((
void
*
)
&
(
item
->
amount
),
12
,
QString
::
number
(
platformDiscount
));
FMTool
::
SetString
((
void
*
)
&
(
item
->
transactionNum
),
64
,
json
[
JSON_KEY_PAYMENTMETHODCODE
].
toString
());
}
if
(
json
[
JSON_KEY_STATUSCODE
].
toInt
()
==
100
)
return
SetPinter
(
response
,
json
);
...
...
@@ -88,7 +128,14 @@ private:
static
bool
GetAgainPrinteResponse
(
AlipayResponse
&
response
,
const
QJsonObject
&
json
)
{
return
false
;
FMTool
::
SetString
(
response
.
ResponseCode
,
3
,
QString
::
number
(
json
[
JSON_KEY_STATUSCODE
].
toInt
()));
FMTool
::
SetString
(
response
.
ResponseMsg
,
40
,
json
[
JSON_KEY_MESSAGE
].
toString
());
FMTool
::
SetString
(
response
.
CardTraceNo
,
40
,
json
[
JSON_KEY_FMID
].
toString
());
FMTool
::
SetString
(
response
.
NeedPrint
,
2
,
QString
(
"01"
));
if
(
json
[
JSON_KEY_STATUSCODE
].
toInt
()
==
100
)
return
SetPinter
(
response
,
json
);
return
true
;
}
static
bool
GetFindResponse
(
AlipayResponse
&
response
,
const
QJsonObject
&
json
)
...
...
@@ -101,12 +148,14 @@ private:
if
(
!
json
.
contains
(
JSON_KEY_EXT
)
||
!
json
[
JSON_KEY_EXT
].
isObject
())
return
false
;
FMTool
::
SetString
(
response
.
NeedPrint
,
2
,
QString
(
"0
1
"
));
FMTool
::
SetString
(
response
.
NeedPrint
,
2
,
QString
(
"0
0
"
));
QJsonObject
obj
=
json
[
JSON_KEY_EXT
].
toObject
();
QString
str
=
obj
[
JSON_KEY_PRINT
].
toString
();
str
.
replace
(
"#"
,
"
\r\n
"
);
QFile
file
(
qApp
->
applicationDirPath
()
+
"/"
+
PRINT_FILE_NAME
);
FMTool
::
SetString
(
response
.
EFTprintFileName
,
200
,
QString
(
qApp
->
applicationDirPath
()
+
"/"
+
PRINT_FILE_NAME
));
...
...
sbkpay/sbkpay.pro
View file @
80e41b72
...
...
@@ -13,7 +13,7 @@ TARGET = sbkpay
include
(
"./QsLog/QsLog.pri"
)
CONFIG
+=
C
++
11
CONFIG
+=
C
++
11
SBKDLL
include
(
$$
PWD
/
qtwinmigrate
/
src
/
qtwinmigrate
.
pri
)
...
...
sbkpay/sbkpay.pro.user
View file @
80e41b72
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.5.1, 2017-08-1
4T12:31:22
. -->
<!-- Written by QtCreator 3.5.1, 2017-08-1
8T10:49:38
. -->
<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