Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
VirtualCard-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
APP
VirtualCard-iOS
Commits
76da1e2e
Commit
76da1e2e
authored
May 25, 2020
by
guanghui.shi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
还款页面开发
parent
5da89d23
Changes
19
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
941 additions
and
24 deletions
+941
-24
project.pbxproj
VirtualPayment/VirtualPayment.xcodeproj/project.pbxproj
+50
-0
QGDeposit.h
.../QGClasses/Card/Function/QGDeposit/Controller/QGDeposit.h
+1
-0
QGDepositeCardModel.h
...asses/Card/Function/QGDeposit/Model/QGDepositeCardModel.h
+3
-0
QGDepositPwdManager.m
...ses/Card/Function/QGDeposit/PwdView/QGDepositPwdManager.m
+69
-1
QGDepositPwdView.m
...lasses/Card/Function/QGDeposit/PwdView/QGDepositPwdView.m
+22
-3
QGPayCardViewCell.h
...Repayment/Controller/QGRepayment/Cell/QGPayCardViewCell.h
+21
-0
QGPayCardViewCell.m
...Repayment/Controller/QGRepayment/Cell/QGPayCardViewCell.m
+76
-0
QGRepayResultViewController.h
...ller/QGRepayment/Controller/QGRepayResultViewController.h
+30
-0
QGRepayResultViewController.m
...ller/QGRepayment/Controller/QGRepayResultViewController.m
+302
-0
QGRepaymentCommitViewController.h
.../QGRepayment/Controller/QGRepaymentCommitViewController.h
+17
-0
QGRepaymentCommitViewController.m
.../QGRepayment/Controller/QGRepaymentCommitViewController.m
+265
-0
QGRepaymentViewController.m
...nt/Controller/QGRepaymentHome/QGRepaymentViewController.m
+19
-14
QGRepaymentReuestApi.h
...lPayment/QGClasses/Card/RequestApi/QGRepaymentReuestApi.h
+3
-0
QGRepaymentReuestApi.m
...lPayment/QGClasses/Card/RequestApi/QGRepaymentReuestApi.m
+9
-0
QGSharePosterViewController.m
.../QGBusinessShare/Controller/QGSharePosterViewController.m
+1
-1
QGSafeCenterViewController.m
...erCenter/Function/SafeCenter/QGSafeCenterViewController.m
+24
-0
QGBaseWebViewController.m
...ls/QGTool/QGBasicControllerTool/QGBaseWebViewController.m
+0
-1
QGAppMacro.h
.../VirtualPayment/QGUtils/QGTool/QGBasicUITool/QGAppMacro.h
+2
-2
SystemManager.m
VirtualPayment/VirtualPayment/QGUtils/QGTool/SystemManager.m
+27
-2
No files found.
VirtualPayment/VirtualPayment.xcodeproj/project.pbxproj
View file @
76da1e2e
...
...
@@ -110,6 +110,8 @@
464F32452435FB8400656D2A
/* QGDepositPwdView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
464F32442435FB8400656D2A
/* QGDepositPwdView.m */
;
};
464F324824364D1B00656D2A
/* QGDepositeCardModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
464F324724364D1B00656D2A
/* QGDepositeCardModel.m */
;
};
464F324B24364ED300656D2A
/* QGDepositPwdManager.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
464F324A24364ED300656D2A
/* QGDepositPwdManager.m */
;
};
46500DCB2477CF4E00816069
/* QGRepaymentCommitViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46500DCA2477CF4E00816069
/* QGRepaymentCommitViewController.m */
;
};
46500DCF2477D9F400816069
/* QGPayCardViewCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46500DCE2477D9F400816069
/* QGPayCardViewCell.m */
;
};
465A6E1C24596E3300BF924E
/* QGFansEmptyView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
465A6E1B24596E3300BF924E
/* QGFansEmptyView.m */
;
};
465A6E222459837000BF924E
/* QGSharePosterCollectionViewCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
465A6E212459837000BF924E
/* QGSharePosterCollectionViewCell.m */
;
};
465A6E90245AC9CF00BF924E
/* SASecurityPolicy.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
465A6E24245AC9CF00BF924E
/* SASecurityPolicy.m */
;
};
...
...
@@ -208,6 +210,7 @@
46B6A94323BB4FA700184B85
/* YTTrackPro.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46B6A93623BB4FA700184B85
/* YTTrackPro.framework */
;
};
46B6A94423BB4FA700184B85
/* NextCV.framework in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46B6A93723BB4FA700184B85
/* NextCV.framework */
;
};
46B6A94523BB4FA700184B85
/* WBCloudReflectionFaceVerify_framework.podspec in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46B6A93823BB4FA700184B85
/* WBCloudReflectionFaceVerify_framework.podspec */
;
};
46BE22B2247B99C0002088A6
/* QGRepayResultViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46BE22B1247B99C0002088A6
/* QGRepayResultViewController.m */
;
};
46C3C98424570FE600B4F7BF
/* QGBusinessFansViewCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46C3C98324570FE600B4F7BF
/* QGBusinessFansViewCell.m */
;
};
46C3C988245714CC00B4F7BF
/* QGBusinessFansModel.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46C3C987245714CC00B4F7BF
/* QGBusinessFansModel.m */
;
};
46C3C98E24572BA900B4F7BF
/* QGSharePosterViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
46C3C98D24572BA800B4F7BF
/* QGSharePosterViewController.m */
;
};
...
...
@@ -901,6 +904,10 @@
464F324924364ED300656D2A
/* QGDepositPwdManager.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGDepositPwdManager.h
;
sourceTree
=
"<group>"
;
};
464F324A24364ED300656D2A
/* QGDepositPwdManager.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
QGDepositPwdManager.m
;
sourceTree
=
"<group>"
;
};
464F324C2436575A00656D2A
/* QGDeposit.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGDeposit.h
;
sourceTree
=
"<group>"
;
};
46500DC92477CF4E00816069
/* QGRepaymentCommitViewController.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGRepaymentCommitViewController.h
;
sourceTree
=
"<group>"
;
};
46500DCA2477CF4E00816069
/* QGRepaymentCommitViewController.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
QGRepaymentCommitViewController.m
;
sourceTree
=
"<group>"
;
};
46500DCD2477D9F400816069
/* QGPayCardViewCell.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGPayCardViewCell.h
;
sourceTree
=
"<group>"
;
};
46500DCE2477D9F400816069
/* QGPayCardViewCell.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
QGPayCardViewCell.m
;
sourceTree
=
"<group>"
;
};
465A6E1A24596E3300BF924E
/* QGFansEmptyView.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGFansEmptyView.h
;
sourceTree
=
"<group>"
;
};
465A6E1B24596E3300BF924E
/* QGFansEmptyView.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
QGFansEmptyView.m
;
sourceTree
=
"<group>"
;
};
465A6E202459837000BF924E
/* QGSharePosterCollectionViewCell.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGSharePosterCollectionViewCell.h
;
sourceTree
=
"<group>"
;
};
...
...
@@ -1075,6 +1082,8 @@
46B6A93623BB4FA700184B85
/* YTTrackPro.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
path
=
YTTrackPro.framework
;
sourceTree
=
"<group>"
;
};
46B6A93723BB4FA700184B85
/* NextCV.framework */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
wrapper.framework
;
path
=
NextCV.framework
;
sourceTree
=
"<group>"
;
};
46B6A93823BB4FA700184B85
/* WBCloudReflectionFaceVerify_framework.podspec */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
text
;
path
=
WBCloudReflectionFaceVerify_framework.podspec
;
sourceTree
=
"<group>"
;
};
46BE22B0247B99C0002088A6
/* QGRepayResultViewController.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGRepayResultViewController.h
;
sourceTree
=
"<group>"
;
};
46BE22B1247B99C0002088A6
/* QGRepayResultViewController.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
QGRepayResultViewController.m
;
sourceTree
=
"<group>"
;
};
46C3C98224570FE600B4F7BF
/* QGBusinessFansViewCell.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGBusinessFansViewCell.h
;
sourceTree
=
"<group>"
;
};
46C3C98324570FE600B4F7BF
/* QGBusinessFansViewCell.m */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
QGBusinessFansViewCell.m
;
sourceTree
=
"<group>"
;
};
46C3C986245714CC00B4F7BF
/* QGBusinessFansModel.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
QGBusinessFansModel.h
;
sourceTree
=
"<group>"
;
};
...
...
@@ -2385,6 +2394,7 @@
46440DBE22BA340F0021346A
/* Controller */
=
{
isa
=
PBXGroup
;
children
=
(
46500DC62477CE4500816069
/* QGRepayment */
,
9E4D1FD72340938900867C47
/* QGShouldAmountDetail */
,
9E4D1FD52340936900867C47
/* QGRepaymentHome */
,
);
...
...
@@ -2485,6 +2495,43 @@
path
=
PwdView
;
sourceTree
=
"<group>"
;
};
46500DC62477CE4500816069
/* QGRepayment */
=
{
isa
=
PBXGroup
;
children
=
(
46500DCC2477D49B00816069
/* Cell */
,
46500DC82477CF2700816069
/* Controller */
,
46500DC72477CF1F00816069
/* View */
,
);
path
=
QGRepayment
;
sourceTree
=
"<group>"
;
};
46500DC72477CF1F00816069
/* View */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
View
;
sourceTree
=
"<group>"
;
};
46500DC82477CF2700816069
/* Controller */
=
{
isa
=
PBXGroup
;
children
=
(
46500DC92477CF4E00816069
/* QGRepaymentCommitViewController.h */
,
46500DCA2477CF4E00816069
/* QGRepaymentCommitViewController.m */
,
46BE22B0247B99C0002088A6
/* QGRepayResultViewController.h */
,
46BE22B1247B99C0002088A6
/* QGRepayResultViewController.m */
,
);
path
=
Controller
;
sourceTree
=
"<group>"
;
};
46500DCC2477D49B00816069
/* Cell */
=
{
isa
=
PBXGroup
;
children
=
(
46500DCD2477D9F400816069
/* QGPayCardViewCell.h */
,
46500DCE2477D9F400816069
/* QGPayCardViewCell.m */
,
);
path
=
Cell
;
sourceTree
=
"<group>"
;
};
465A6E1924596E1C00BF924E
/* View */
=
{
isa
=
PBXGroup
;
children
=
(
...
...
@@ -6127,6 +6174,7 @@
9EB1D7D922BCC0A7008D28CE
/* ZHRichHelpModel.m in Sources */
,
465A6E9C245AC9CF00BF924E
/* SAAlertController.m in Sources */
,
465A6EAD245AC9D000BF924E
/* SAObjectSerializerContext.m in Sources */
,
46500DCB2477CF4E00816069
/* QGRepaymentCommitViewController.m in Sources */
,
97CDB63522891D4200257F77
/* YYClassInfo.m in Sources */
,
465A7524241886C1000A4660
/* QGMallGoodsListViewController.m in Sources */
,
46C3C98E24572BA900B4F7BF
/* QGSharePosterViewController.m in Sources */
,
...
...
@@ -6233,6 +6281,7 @@
9EBE245324347882009C83A1
/* QGCreditApplyViewController.m in Sources */
,
9EA79812228275D400CDCB80
/* QGColorNavigationBar.m in Sources */
,
7F4C80DE22C9E1C6003B9D07
/* QGImageCollectionViewCell.m in Sources */
,
46BE22B2247B99C0002088A6
/* QGRepayResultViewController.m in Sources */
,
46F085C423A3982800979029
/* QGFloatsPopView.m in Sources */
,
462E004A22C3173C0010C0E2
/* QGRepaymentOverDueCell.m in Sources */
,
462DFD8324568A4C001BF47B
/* QGBusinessFansViewController.m in Sources */
,
...
...
@@ -6482,6 +6531,7 @@
9EA79BD22282D61300CDCB80
/* SDInternalMacros.m in Sources */
,
9EBE24462434336C009C83A1
/* QGCardAccountNormalCell.m in Sources */
,
46F085C323A3982800979029
/* QGActivityPopModel.m in Sources */
,
46500DCF2477D9F400816069
/* QGPayCardViewCell.m in Sources */
,
9EB1DB4E22C30847008D28CE
/* DES3EncryptUtil.m in Sources */
,
9E6E28A623A2165100085C21
/* QGUserCenterDataModel.m in Sources */
,
9EA79BC92282D61300CDCB80
/* SDImageCoderHelper.m in Sources */
,
...
...
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGDeposit/Controller/QGDeposit.h
View file @
76da1e2e
...
...
@@ -13,6 +13,7 @@ typedef NS_ENUM(NSInteger,QGDepositType)
{
QGDepositTypeIn
=
1
,
/// 转入
QGDepositTypeOut
,
/// 转出
QGDepositTypeRepay
/// 还款
};
...
...
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGDeposit/Model/QGDepositeCardModel.h
View file @
76da1e2e
...
...
@@ -26,6 +26,9 @@ NS_ASSUME_NONNULL_BEGIN
@property
(
nonatomic
,
copy
)
NSString
*
type
;
/// 卡Id,享花卡还款中用到
@property
(
nonatomic
,
copy
)
NSString
*
cardId
;
@end
NS_ASSUME_NONNULL_END
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGDeposit/PwdView/QGDepositPwdManager.m
View file @
76da1e2e
...
...
@@ -154,7 +154,13 @@
/// 对密码进行DES加密
NSString
*
encryptPwd
=
[
NSString
encryptUseDES
:
pwd
key
:
salt
];
/// 校验交易密码
[
self
verifyTradeWithEncryptPwd
:
encryptPwd
];
if
(
self
.
type
==
QGDepositTypeRepay
)
{
///还款交易
[
self
verifyPaymentWithEbcryPwd
:
encryptPwd
];
}
else
{
/// 转入转出交易
[
self
verifyTradeWithEncryptPwd
:
encryptPwd
];
}
}];
};
}
...
...
@@ -179,6 +185,42 @@
}];
}
#pragma mark - 享花卡还款交易
-
(
void
)
verifyPaymentWithEbcryPwd
:(
NSString
*
)
pwd
{
QGTalosNetwork
*
networking
=
[
QGTalosNetwork
shareManager
];
NSMutableDictionary
*
param
=
[
NSMutableDictionary
dictionary
];
[
param
setObject
:
self
.
card
.
cardId
forKey
:
@"cardId"
];
[
param
setObject
:
pwd
forKey
:
@"pwd"
];
[
networking
POST
:
@"http://yapi.quantgroups.com/mock/305/vcc/repay"
parameters
:
param
success
:^
(
id
_Nonnull
responseObject
)
{
[
QGHUDManager
hideHud
];
if
([
QGTalosNetwork
checkBusinessCodeAndCodeWithResponseObjectObject
:
responseObject
])
{
if
(
self
.
tradeResultBlock
)
{
self
.
tradeResultBlock
(
YES
,
nil
,
nil
);
}
if
(
self
.
resultBlock
)
{
self
.
resultBlock
(
QGDepositResultTypeSuccess
,
nil
);
}
}
else
{
/// 失败信息
NSString
*
message
=
responseObject
[
@"msg"
]
?
responseObject
[
@"msg"
]
:
@"未知错误,交易失败"
;
/// 回调:交易失败
if
(
self
.
tradeResultBlock
)
{
self
.
tradeResultBlock
(
NO
,
nil
,
message
);
}
[
self
handleRepayFailureWithResponse
:
responseObject
];
}
}
failure
:^
(
NSURLSessionDataTask
*
_Nonnull
task
,
NSError
*
_Nonnull
error
)
{
[
QGHUDManager
showHud
:
@"网络错误,交易失败"
];
}];
}
#pragma mark - 转入转出交易
/// 验证交易密码
-
(
void
)
verifyTradeWithEncryptPwd
:(
NSString
*
)
pwd
{
...
...
@@ -222,6 +264,32 @@
}];
}
-
(
void
)
handleRepayFailureWithResponse
:(
NSDictionary
*
)
responseObject
{
NSString
*
bussinessCode
=
[
NSString
stringWithFormat
:
@"%@"
,
responseObject
[
@"businessCode"
]];
if
([
bussinessCode
integerValue
]
==
2
)
{
self
.
errorCount
++
;
/// 超过次数
if
(
self
.
errorCount
>=
self
.
totalCount
)
{
if
(
self
.
resultBlock
)
{
self
.
resultBlock
(
QGDepositResultTypeFailure
,
@"密码错误次数过多"
);
}
[
self
showPwdNotAvailableView
];
}
else
{
NSString
*
message
=
[
NSString
stringWithFormat
:
@"密码错误%lu次,还剩%lu次尝试"
,
self
.
errorCount
,
self
.
totalCount
-
self
.
errorCount
];
if
(
self
.
resultBlock
)
{
self
.
resultBlock
(
QGDepositResultTypeFailureForPwd
,
message
);
}
}
}
else
{
NSString
*
message
=
responseObject
[
@"msg"
];
[
QGHUDManager
showHud
:
message
?
message
:
@"未知错误,交易失败"
];
if
(
self
.
resultBlock
)
{
self
.
resultBlock
(
QGDepositResultTypeFailure
,
nil
);
}
}
}
///BIZ_CODE_DEBIT_REQ_ERROR(3101L,"请求入参错误,请确认后重试")
///BIZ_CODE_DEBIT_QUICK_ERROR(3102L, "同一用户连续请求多次")
///BIZ_CODE_DEBIT_USER_ERROR(3103L, "该用户尚未开通储蓄卡")
...
...
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGDeposit/PwdView/QGDepositPwdView.m
View file @
76da1e2e
...
...
@@ -30,6 +30,8 @@
/// 错误信息反馈
@property
(
nonatomic
,
strong
)
UILabel
*
errorLab
;
@property
(
nonatomic
,
strong
)
UILabel
*
acountTitleLab
;
///交易结果回调
@property
(
nonatomic
,
copy
)
QGDepositResultBlock
resultBlock
;
...
...
@@ -133,6 +135,8 @@
make
.
left
.
inset
(
25
);
make
.
top
.
equalTo
(
amountLab
.
mas_bottom
).
offset
(
12
);
}];
self
.
acountTitleLab
=
acountTitleLab
;
///转出账户具体银行
UILabel
*
acountLab
=
[
UILabel
creatLabelWithSuperView
:
backView
title
:
@"**银行(****)"
titleFontSize
:
[
UIFont
qg_lightFontOfSize
:
14
.
0
]
textColor
:
UIColor
.
textColor3333
alignment
:
NSTextAlignmentRight
];
[
acountLab
mas_makeConstraints
:
^
(
MASConstraintMaker
*
make
)
{
...
...
@@ -297,15 +301,30 @@
{
if
(
_type
!=
type
)
{
_type
=
type
;
self
.
depositeTitleLab
.
text
=
type
==
QGDepositTypeIn
?
@"转入金额"
:
@"转出金额"
;
self
.
depositeImageV
.
image
=
[
UIImage
imageNamed
:[
NSString
stringWithFormat
:
@"%@"
,
type
==
QGDepositTypeIn
?
@"deposit_in"
:
@"deposit_out"
]];
if
(
type
==
QGDepositTypeIn
)
{
self
.
acountTitleLab
.
text
=
@"转出账户"
;
self
.
depositeTitleLab
.
text
=
@"转入金额"
;
self
.
depositeImageV
.
image
=
[
UIImage
imageNamed
:
@"deposit_in"
];
}
else
if
(
type
==
QGDepositTypeOut
){
self
.
acountTitleLab
.
text
=
@"转出账户"
;
self
.
depositeTitleLab
.
text
=
@"转出金额"
;
self
.
depositeImageV
.
image
=
[
UIImage
imageNamed
:
@"deposit_out"
];
}
else
if
(
type
==
QGDepositTypeRepay
){
self
.
acountTitleLab
.
text
=
@"付款方式"
;
self
.
depositeTitleLab
.
text
=
@"享花卡还款"
;
self
.
depositeImageV
.
image
=
nil
;
}
}
}
-
(
void
)
setCard
:(
QGDepositeCardModel
*
)
card
{
_card
=
card
;
self
.
acountLab
.
text
=
[
NSString
stringWithFormat
:
@"%@%@(%@)"
,
card
.
bankName
,
card
.
type
,
card
.
tailCardNo
];
if
(
self
.
type
==
QGDepositTypeRepay
)
{
self
.
acountLab
.
text
=
[
NSString
stringWithFormat
:
@"%@(%@)"
,
card
.
bankName
,
card
.
tailCardNo
];
}
else
{
self
.
acountLab
.
text
=
[
NSString
stringWithFormat
:
@"%@%@(%@)"
,
card
.
bankName
,
card
.
type
,
card
.
tailCardNo
];
}
}
-
(
void
)
setAmount
:(
NSString
*
)
amount
...
...
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepayment/Cell/QGPayCardViewCell.h
0 → 100644
View file @
76da1e2e
//
// QGPayModeViewCell.h
// VirtualPayment
//
// Created by silicn on 2020/5/22.
// Copyright © 2020 bo.zhang. All rights reserved.
//
#import "QGTableViewCommonCell.h"
NS_ASSUME_NONNULL_BEGIN
@interface
QGPayCardViewCell
:
QGTableViewCommonCell
@property
(
nonatomic
,
copy
)
NSString
*
bankName
;
@property
(
nonatomic
,
copy
)
NSString
*
limitDes
;
@end
NS_ASSUME_NONNULL_END
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepayment/Cell/QGPayCardViewCell.m
0 → 100644
View file @
76da1e2e
//
// QGPayModeViewCell.m
// VirtualPayment
//
// Created by silicn on 2020/5/22.
// Copyright © 2020 bo.zhang. All rights reserved.
//
#import "QGPayCardViewCell.h"
#import "QGBasicUITool.h"
@interface
QGPayCardViewCell
()
@property
(
nonatomic
,
strong
)
UILabel
*
cardLab
;
@property
(
nonatomic
,
strong
)
UILabel
*
desLab
;
@end
@implementation
QGPayCardViewCell
-
(
instancetype
)
initWithStyle
:(
UITableViewCellStyle
)
style
reuseIdentifier
:(
nullable
NSString
*
)
reuseIdentifier
{
self
=
[
super
initWithStyle
:
style
reuseIdentifier
:
reuseIdentifier
];
if
(
self
)
{
self
.
selectionStyle
=
UITableViewCellSelectionStyleNone
;
UILabel
*
nameLab
=
[
UILabel
creatLabelWithSuperView
:
self
.
contentView
title
:
@"付款方式"
titleFontSize
:
[
UIFont
qg_lightFontOfSize
:
14
.
0
f
]
textColor
:
UIColor
.
textColor9999
alignment
:
NSTextAlignmentLeft
];
[
nameLab
mas_makeConstraints
:
^
(
MASConstraintMaker
*
make
)
{
make
.
left
.
inset
(
20
);
make
.
centerY
.
equalTo
(
self
.
contentView
);
}];
[
nameLab
setContentCompressionResistancePriority
:
UILayoutPriorityDefaultHigh
forAxis
:
UILayoutConstraintAxisHorizontal
];
self
.
cardLab
=
[
UILabel
creatLabelWithSuperView
:
self
.
contentView
title
:
@"中国建设银行(8888)"
titleFontSize
:
[
UIFont
qg_lightFontOfSize
:
14
.
0
f
]
textColor
:
UIColor
.
textColor3333
alignment
:
NSTextAlignmentRight
];
[
self
.
cardLab
mas_makeConstraints
:
^
(
MASConstraintMaker
*
make
)
{
make
.
right
.
equalTo
(
self
.
arrowImage
.
mas_left
).
offset
(
-
10
);
make
.
centerY
.
equalTo
(
self
.
contentView
.
mas_centerY
).
offset
(
-
10
);
make
.
left
.
greaterThanOrEqualTo
(
nameLab
.
mas_right
).
offset
(
10
);
}];
UILabel
*
desLab
=
[
UILabel
creatLabelWithSuperView
:
self
.
contentView
title
:
@"限额"
titleFontSize
:
[
UIFont
qg_lightFontOfSize
:
11
.
0
f
]
textColor
:
UIColor
.
textColor9999
alignment
:
NSTextAlignmentRight
];
[
desLab
mas_makeConstraints
:
^
(
MASConstraintMaker
*
make
)
{
make
.
left
.
right
.
equalTo
(
self
.
cardLab
);
make
.
top
.
equalTo
(
self
.
cardLab
.
mas_bottom
).
offset
(
2
);
}];
self
.
desLab
=
desLab
;
}
return
self
;
}
-
(
void
)
setBankName
:(
NSString
*
)
bankName
{
_bankName
=
bankName
;
self
.
cardLab
.
text
=
bankName
;
}
-
(
void
)
setLimitDes
:(
NSString
*
)
limitDes
{
_limitDes
=
limitDes
;
self
.
desLab
.
text
=
limitDes
;
}
-
(
void
)
awakeFromNib
{
[
super
awakeFromNib
];
// Initialization code
}
-
(
void
)
setSelected
:(
BOOL
)
selected
animated
:(
BOOL
)
animated
{
[
super
setSelected
:
selected
animated
:
animated
];
// Configure the view for the selected state
}
@end
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepayment/Controller/QGRepayResultViewController.h
0 → 100644
View file @
76da1e2e
//
// QGRepayResultViewController.h
// VirtualPayment
//
// Created by silicn on 2020/5/25.
// Copyright © 2020 bo.zhang. All rights reserved.
//
#import "QGBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
typedef
NS_ENUM
(
NSInteger
,
QGRepayResultViewType
)
{
QGRepayResultViewTypeNone
=
0
,
/// 默认加载中
QGRepayResultViewTypeSuccess
,
/// 还款成功
QGRepayResultViewTypeFailure
,
/// 还款失败
QGRepayResultViewTypeWaiting
/// 正在还款
};
typedef
void
(
^
QGRepayResultActionBlock
)(
QGRepayResultViewType
viewType
);
@interface
QGRepayResultViewController
:
QGBaseViewController
/// 再转一笔的回调
@property
(
nonatomic
,
copy
)
QGRepayResultActionBlock
actionBlock
;
@end
NS_ASSUME_NONNULL_END
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepayment/Controller/QGRepayResultViewController.m
0 → 100644
View file @
76da1e2e
This diff is collapsed.
Click to expand it.
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepayment/Controller/QGRepaymentCommitViewController.h
0 → 100644
View file @
76da1e2e
//
// QGRepaymentCommitViewController.h
// VirtualPayment
//
// Created by silicn on 2020/5/22.
// Copyright © 2020 bo.zhang. All rights reserved.
//
#import "QGBaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface
QGRepaymentCommitViewController
:
QGBaseViewController
@end
NS_ASSUME_NONNULL_END
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepayment/Controller/QGRepaymentCommitViewController.m
0 → 100644
View file @
76da1e2e
This diff is collapsed.
Click to expand it.
VirtualPayment/VirtualPayment/QGClasses/Card/Function/QGRepayment/Controller/QGRepaymentHome/QGRepaymentViewController.m
View file @
76da1e2e
...
...
@@ -40,6 +40,7 @@
#import "QGAnalyticsService.h"
#import "QGRepaymentCommitViewController.h"
...
...
@@ -127,20 +128,24 @@
[
self
setupAnalyticsWith
:
isRight
];
NSString
*
urlString
=
nil
;
if
(
self
.
bottomView
.
type
==
RepaymentBottomTypeSignle
){
urlString
=
self
.
billHead
.
forwardUrl
;
urlString
=
[
urlString
filterURLParam
:
@"isBothBtn"
value
:
@"false"
];
}
else
{
urlString
=
isRight
?
self
.
billHead
.
installmentUrl
:
self
.
billHead
.
forwardUrl
;
urlString
=
[
urlString
filterURLParam
:
@"isBothBtn"
value
:
@"true"
];
}
urlString
=
[
urlString
filterURLParam
:
@"billNumber"
value
:
self
.
billModel
.
billNo
];
urlString
=
[
urlString
filterURLParam
:
@"itemPrice"
value
:
self
.
billModel
.
balanceAmount
];
urlString
=
[
urlString
filterURLParam
:
@"addPrice"
value
:
self
.
shouldAmount
==
nil
?
@"0"
:
self
.
shouldAmount
];
urlString
=
[
urlString
filterURLParam
:
@"from"
value
:
self
.
billModel
.
isShould
?
@"should"
:
@"await"
];
[
self
navigationToWeb
:
urlString
];
// NSString *urlString = nil;
// if (self.bottomView.type == RepaymentBottomTypeSignle){
// urlString = self.billHead.forwardUrl;
// urlString = [urlString filterURLParam:@"isBothBtn" value:@"false"];
// }else{
// urlString = isRight ? self.billHead.installmentUrl:self.billHead.forwardUrl;
// urlString = [urlString filterURLParam:@"isBothBtn" value:@"true"];
// }
//
// urlString = [urlString filterURLParam:@"billNumber" value:self.billModel.billNo];
// urlString = [urlString filterURLParam:@"itemPrice" value:self.billModel.balanceAmount];
// urlString = [urlString filterURLParam:@"addPrice" value:self.shouldAmount == nil ? @"0":self.shouldAmount];
// urlString = [urlString filterURLParam:@"from" value:self.billModel.isShould ? @"should":@"await"];
// [self navigationToWeb:urlString];
QGRepaymentCommitViewController
*
vc
=
[[
QGRepaymentCommitViewController
alloc
]
init
];
[
self
.
navigationController
pushViewController
:
vc
animated
:
YES
];
};
/// 设置tableView
[
self
.
tableView
mas_remakeConstraints
:
^
(
MASConstraintMaker
*
make
)
{
...
...
VirtualPayment/VirtualPayment/QGClasses/Card/RequestApi/QGRepaymentReuestApi.h
View file @
76da1e2e
...
...
@@ -14,6 +14,9 @@ typedef NS_ENUM(NSInteger,QGRepaymentRequestServerMethod){
QGRepaymentRequestServerMethodGroupMerge
,
// 首页列表接口
QGRepaymentRequestServerMethodHistoryBills
,
// 历史账单接口
QGRepaymentRequestServerMethodBillDetail
,
// 账单详情接口
QGRepaymentRequestServerMethodRepay
,
// 还款
QGRepaymentRequestServerMethodRepayStatus
,
// 还款状态
QGRepaymentRequestServerMethodRepayInfo
// 还款页面信息
}
;
@interface
QGRepaymentReuestApi
:
NSObject
...
...
VirtualPayment/VirtualPayment/QGClasses/Card/RequestApi/QGRepaymentReuestApi.m
View file @
76da1e2e
...
...
@@ -22,6 +22,15 @@
case
QGRepaymentRequestServerMethodBillDetail
:
return
@"vcc/bill_detail"
;
break
;
case
QGRepaymentRequestServerMethodRepay
:
return
@"vcc/repay"
;
break
;
case
QGRepaymentRequestServerMethodRepayStatus
:
return
@"vcc/repayStatus"
;
break
;
case
QGRepaymentRequestServerMethodRepayInfo
:
return
@"vcc/repay/page"
;
break
;
default:
return
nil
;
break
;
...
...
VirtualPayment/VirtualPayment/QGClasses/Cashback/Function/QGBusinessShare/Controller/QGSharePosterViewController.m
View file @
76da1e2e
...
...
@@ -485,7 +485,7 @@
CGFloat
scale
=
3
;
/// 二维码尺寸
CGFloat
qr_width
=
103
/
312
.
0
*
MAINSCREEN_WIDTH
;
CGFloat
qr_height
=
116
/
103
.
0
*
qr_width
;
CGFloat
qr_height
=
qr_width
;
/// 图片缩放高度
CGFloat
adjustScaleHeight
=
image
.
size
.
height
/
(
image
.
size
.
width
/
MAINSCREEN_WIDTH
);
...
...
VirtualPayment/VirtualPayment/QGClasses/UserCenter/Function/SafeCenter/QGSafeCenterViewController.m
View file @
76da1e2e
...
...
@@ -17,6 +17,8 @@
#import "QGAlertView.h"
#import "QGMallRequestApi.h"
#import "QGThirdPlatformService.h"
@interface
QGSafeCenterViewController
()
///列表模型数组
@property
(
nonatomic
,
strong
)
NSMutableArray
*
dataArray
;
...
...
@@ -108,6 +110,16 @@
}];
[
self
.
dataArray
addObject
:
loginPassword
];
QGMineModel
*
wxAuthModel
=
[[
QGMineModel
alloc
]
initWithTitle
:
@"微信授权"
subtitle
:
@"未授权"
clickAction
:^
(
QGMineModel
*
model
)
{
@strongify
(
self
);
// if (alimamaAuth) {
// [self cancleTaoBaoAuth];
// }else{
// [[QGBaiChuanManager shareInstance] authAllAuthoritiesWithController:self.navigationController];
// }
}];
[
self
.
dataArray
addObject
:
wxAuthModel
];
/// 淘宝授权
bool
alimamaAuth
=
QGUserInfo
.
sharedUserInfo
.
alimamaAuth
;
QGMineModel
*
tbAuthModel
=
[[
QGMineModel
alloc
]
initWithTitle
:
@"淘宝授权"
subtitle
:
alimamaAuth
?
@"已授权"
:
@"未授权"
clickAction
:^
(
QGMineModel
*
model
)
{
...
...
@@ -125,6 +137,18 @@
}
-
(
void
)
bindWxAuth
{
[[
QGThirdPlatformService
shareInstance
]
wxAuthWithSuccess
:
^
(
QGWechatLoginInfoModel
*
infoModel
)
{
}];
}
-
(
void
)
unBindWxAuth
{
}
-
(
void
)
cancleTaoBaoAuth
{
QGAlertView
*
alert
=
[[
QGAlertView
alloc
]
initWithTitle
:
nil
message
:
@"确认取消淘宝授权?取消后将无法继续获得返现哦~"
cancelButtonTitle
:
@"取消"
sureButtonTitle
:
@"确认"
clickBlock
:^
(
NSInteger
index
)
{
...
...
VirtualPayment/VirtualPayment/QGUtils/QGTool/QGBasicControllerTool/QGBaseWebViewController.m
View file @
76da1e2e
...
...
@@ -525,7 +525,6 @@
}
/// 客服点击事件
-
(
void
)
serviceButtonClickWithNavUrl
:(
NSString
*
)
navUrl
{
...
...
VirtualPayment/VirtualPayment/QGUtils/QGTool/QGBasicUITool/QGAppMacro.h
View file @
76da1e2e
...
...
@@ -70,8 +70,8 @@ static NSString *const kDefaultIconUrl = @"http://7xodoz.dl1.z0.glb.clouddn.com/
static
NSString
*
const
kTencentAppID
=
@"1108767784"
;
static
NSString
*
const
kTencentSchemeKey
=
@"tencent1108767784"
;
/// 保存分享海报的url信息,用于做对比
#define k
SharePosterKey @"kSharePosterNative
Key"
#define k
PasteboardCurrentContentKey @"kPasteboardCurrentContent
Key"
//字节跳动APM
#define ByteDanceApmAppID @"173771"
...
...
VirtualPayment/VirtualPayment/QGUtils/QGTool/SystemManager.m
View file @
76da1e2e
...
...
@@ -69,13 +69,20 @@ static SystemManager * shareManager = nil;
}
/// 监听App的粘贴板
-
(
void
)
pasteboardChanged
{
UIPasteboard
*
pasteboard
=
[
UIPasteboard
generalPasteboard
];
if
(
pasteboard
.
string
.
length
)
{
self
.
pasteboardString
=
pasteboard
.
string
;
/// 大于100 取 100
if
(
pasteboard
.
string
.
length
>
100
)
{
self
.
pasteboardString
=
[
pasteboard
.
string
substringToIndex
:
99
];
}
else
{
self
.
pasteboardString
=
pasteboard
.
string
;
}
self
.
pasteboardStrings
=
pasteboard
.
strings
;
[[
QGCacheManager
shareCacheManager
]
setAPPConfigValue
:
self
.
pasteboardString
forKey
:
kPasteboardCurrentContentKey
];
}
else
{
self
.
pasteboardString
=
nil
;
self
.
pasteboardStrings
=
nil
;
...
...
@@ -227,8 +234,26 @@ static SystemManager * shareManager = nil;
NSString
*
string
=
[
UIPasteboard
generalPasteboard
].
string
;
/// 空或者字符串长度小于15
if
([
NSString
isEmpty
:
string
]
||
string
.
length
<=
15
)
return
NO
;
if
(
self
.
pasteboardString
.
length
==
0
)
{
NSString
*
pasterBoard
=
[[
QGCacheManager
shareCacheManager
]
appConfigValueForKey
:
kPasteboardCurrentContentKey
];
if
(
pasterBoard
.
length
)
{
self
.
pasteboardString
=
pasterBoard
;
}
}
/// 与粘贴板相同
if
(
self
.
pasteboardString
&&
[
self
.
pasteboardString
isEqualToString
:
string
])
return
NO
;
if
(
self
.
pasteboardString
)
{
// 字符串大于100,取100
if
(
string
.
length
>
100
)
{
NSString
*
subString
=
[
string
substringToIndex
:
99
];
if
([
self
.
pasteboardString
isEqualToString
:
subString
])
{
return
NO
;
}
}
else
{
if
([
self
.
pasteboardString
isEqualToString
:
string
])
{
return
NO
;
}
}
}
/// 纯数字
if
([
string
isNumber
])
return
NO
;
...
...
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