Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
youka-api
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
java-youka-wallet
youka-api
Commits
1203dd4c
Commit
1203dd4c
authored
May 24, 2018
by
Java-聂换换
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提现
parent
5b37019a
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
592 additions
and
20 deletions
+592
-20
ComCode.java
src/main/java/com/thinkgem/jeesite/common/constant/ComCode.java
+22
-0
DateUtils.java
src/main/java/com/thinkgem/jeesite/common/utils/DateUtils.java
+15
-0
PayApiController.java
src/main/java/com/thinkgem/jeesite/modules/pay/api/PayApiController.java
+21
-0
PingAnBankService.java
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/PingAnBankService.java
+170
-15
PingAnBankDto.java
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/dto/PingAnBankDto.java
+52
-0
PingAnBankUtils.java
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/util/PingAnBankUtils.java
+84
-0
XmlUtil.java
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/util/XmlUtil.java
+91
-0
PayApiService.java
src/main/java/com/thinkgem/jeesite/modules/pay/service/PayApiService.java
+110
-3
DictDao.xml
src/main/resources/mappings/modules/sys/DictDao.xml
+2
-1
UserDao.xml
src/main/resources/mappings/modules/user/UserDao.xml
+3
-1
youka.properties
src/main/resources/youka.properties
+22
-0
No files found.
src/main/java/com/thinkgem/jeesite/common/constant/ComCode.java
View file @
1203dd4c
...
...
@@ -151,4 +151,26 @@ public class ComCode {
public
static
final
String
PAYCHANNEL_HL2
=
"quick_jfen"
;
public
static
final
String
PAYCHANNEL_HL3
=
"quick_integral"
;
public
static
final
String
PAYCHANNEL_HUANQIUHUIJU
=
"quick_huanqiuhuiju"
;
/**
* 支付方式
*/
public
static
final
String
PAYMETHOD_QUICK
=
"quick"
;
public
static
final
String
PAYMETHOD_WX
=
"wx"
;
public
static
final
String
PAYMETHOD_ALI
=
"ali"
;
public
static
final
String
PAYMETHOD_PUTFORWARD
=
"put_forward"
;
/**
* 平安银行
*/
public
static
final
String
PINGANBANK_ENTERPRISECODE
=
Global
.
getConfig
(
"pinganbank.enterprisecode"
);
// 企业代码
public
static
final
String
PINGANBANK_ACCOUNT
=
Global
.
getConfig
(
"pinganbank.account"
);
// 企业账号
public
static
final
String
PINGANBANK_OUTACCTNO
=
Global
.
getConfig
(
"pinganbank.outacctno"
);
// 企业的付款人账号
public
static
final
String
PINGANBANK_OUTACCTNAME
=
Global
.
getConfig
(
"pinganbank.outacctname"
);
// 企业的付款人账号
public
static
final
String
PINGANBANK_OUTACCTBANK
=
Global
.
getConfig
(
"pinganbank.outacctbank"
);
// 企业银行代码
public
static
final
String
PINGANBANK_B2BICURL
=
Global
.
getConfig
(
"pinganbank.b2bicurl"
);
// 企业银行代码
}
src/main/java/com/thinkgem/jeesite/common/utils/DateUtils.java
View file @
1203dd4c
...
...
@@ -239,6 +239,21 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
}
/**
* 获取自定义昨天日期
* @param month 月份
* @return Date
*/
public
static
String
getDateByDay
(
String
pattern
,
int
day
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
pattern
);
Calendar
calendar
=
Calendar
.
getInstance
(
);
Date
date
=
new
Date
();
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
DATE
,
day
);
return
dateFormat
.
format
(
calendar
.
getTime
(
)
);
}
/**
* 获取当月第一天
*
* @param yyyy-mm-dd
...
...
src/main/java/com/thinkgem/jeesite/modules/pay/api/PayApiController.java
View file @
1203dd4c
...
...
@@ -151,6 +151,27 @@ public class PayApiController {
return
resp
;
}
/**
* 提现
*
* @param request
* @return
*/
@PostMapping
(
"/putForward"
)
public
Response
putForward
(
JuHeZhongPayRequest
request
)
{
Response
resp
=
new
Response
();
try
{
return
payService
.
putForward
(
request
);
}
catch
(
Exception
e
){
resp
.
setMessage
(
ComCode
.
STATUS_CODE_9998_DESC
);
resp
.
setStatus
(
ComCode
.
STATUS_CODE_9998
);
resp
.
setError
(
e
.
getMessage
());
}
return
resp
;
}
/**
* juhezhong快捷支付的回调
* @param request
...
...
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/PingAnBankService.java
View file @
1203dd4c
This diff is collapsed.
Click to expand it.
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/dto/PingAnBankDto.java
0 → 100644
View file @
1203dd4c
package
com
.
thinkgem
.
jeesite
.
modules
.
pay
.
pinganbank
.
dto
;
public
class
PingAnBankDto
{
private
String
account
;
// 账号
private
String
ccyCode
;
// 货币类型 RMB 人民币,USD 美元,HKD 港币, 默认为RMB
private
String
ccyType
;
// 钞汇标志 C 钞户, R汇户,默认为C。
private
String
enterprisecode
;
private
String
orderCode
;
public
String
getAccount
()
{
return
account
;
}
public
void
setAccount
(
String
account
)
{
this
.
account
=
account
;
}
public
String
getCcyCode
()
{
return
ccyCode
;
}
public
void
setCcyCode
(
String
ccyCode
)
{
this
.
ccyCode
=
ccyCode
;
}
public
String
getCcyType
()
{
return
ccyType
;
}
public
void
setCcyType
(
String
ccyType
)
{
this
.
ccyType
=
ccyType
;
}
public
String
getEnterprisecode
()
{
return
enterprisecode
;
}
public
void
setEnterprisecode
(
String
enterprisecode
)
{
this
.
enterprisecode
=
enterprisecode
;
}
public
String
getOrderCode
()
{
return
orderCode
;
}
public
void
setOrderCode
(
String
orderCode
)
{
this
.
orderCode
=
orderCode
;
}
}
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/util/PingAnBankUtils.java
0 → 100644
View file @
1203dd4c
package
com
.
thinkgem
.
jeesite
.
modules
.
pay
.
pinganbank
.
util
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.annotation.JsonBackReference
;
import
com.thinkgem.jeesite.common.constant.ComCode
;
import
com.thinkgem.jeesite.common.utils.DateUtils
;
import
com.thinkgem.jeesite.common.utils.IdGen
;
import
com.thinkgem.jeesite.common.utils.StringUtils
;
import
org.apache.commons.httpclient.HttpClient
;
import
org.apache.commons.httpclient.methods.PostMethod
;
import
org.apache.commons.httpclient.methods.StringRequestEntity
;
import
org.jdom2.JDOMException
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
public
class
PingAnBankUtils
{
public
static
String
getBobyLength
(
String
boby
)
throws
UnsupportedEncodingException
{
String
length
=
boby
.
getBytes
(
"GBK"
).
length
+
""
;
int
sub
=
10
-
length
.
length
()
;
StringBuffer
sb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
sub
;
i
++){
sb
.
append
(
"0"
);
}
sb
.
append
(
length
);
return
sb
.
toString
();
}
public
static
String
getHead
(
String
boby
,
String
enterprisecode
,
String
transactionCode
,
String
orderCode
)
throws
UnsupportedEncodingException
{
StringBuffer
sb
=
new
StringBuffer
();
sb
.
append
(
"A001010102"
)
.
append
(
enterprisecode
)
.
append
(
PingAnBankUtils
.
getBobyLength
(
boby
))
.
append
(
transactionCode
)
.
append
(
" "
)
.
append
(
"0000001"
)
.
append
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyymmddhhmmss"
));
// 时间
if
(
StringUtils
.
isBlank
(
orderCode
)){
orderCode
=
IdGen
.
randomBase62
(
20
);
}
sb
.
append
(
orderCode
)
// 交易码
.
append
(
"000000"
)
//返回码 请求时必须填写 000000 非“000000”代表交易受理异常或失败
.
append
(
"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000RSA-SHA100000000000"
)
.
append
(
boby
.
toString
());
System
.
out
.
println
(
sb
.
toString
());
return
sb
.
toString
();
}
public
static
JSONObject
post
(
String
parma
)
throws
IOException
,
JDOMException
{
// 目前是本地的服务 等服务器好了之后
PostMethod
postMethod
=
new
PostMethod
(
ComCode
.
PINGANBANK_B2BICURL
);
postMethod
.
setRequestEntity
(
new
StringRequestEntity
(
parma
,
"text/html"
,
"GBK"
));
postMethod
.
setRequestHeader
(
"Content-Type"
,
"text/xml; charset=GBK"
);
HttpClient
httpClient
=
new
HttpClient
();
int
resultint
=
httpClient
.
executeMethod
(
postMethod
);
System
.
out
.
println
(
postMethod
.
getResponseBody
());
String
res
=
new
String
(
postMethod
.
getResponseBody
(),
"GBK"
);
System
.
out
.
println
(
"http response:"
+
res
);
postMethod
.
releaseConnection
();
System
.
out
.
println
(
resultint
);
if
(
res
.
contains
(
"<"
)){
System
.
out
.
println
(
res
.
substring
(
res
.
indexOf
(
"<"
)));
JSONObject
json
=
XmlUtil
.
xml2JSON
(
res
.
substring
(
res
.
indexOf
(
"<"
)).
getBytes
());
System
.
out
.
println
(
json
.
toJSONString
());
return
json
;
}
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"all"
,
res
);
return
jsonObject
;
}
}
src/main/java/com/thinkgem/jeesite/modules/pay/pinganbank/util/XmlUtil.java
0 → 100644
View file @
1203dd4c
package
com
.
thinkgem
.
jeesite
.
modules
.
pay
.
pinganbank
.
util
;
import
com.alibaba.fastjson.JSONObject
;
import
org.jdom2.Element
;
import
org.jdom2.JDOMException
;
import
org.jdom2.input.SAXBuilder
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.LinkedList
;
import
java.util.List
;
public
class
XmlUtil
{
public
static
JSONObject
xml2JSON
(
byte
[]
xml
)
throws
JDOMException
,
IOException
{
JSONObject
json
=
new
JSONObject
();
InputStream
is
=
new
ByteArrayInputStream
(
xml
);
SAXBuilder
sb
=
new
SAXBuilder
();
org
.
jdom2
.
Document
doc
=
sb
.
build
(
is
);
Element
root
=
doc
.
getRootElement
();
json
.
put
(
root
.
getName
(),
iterateElement
(
root
));
return
json
;
}
private
static
JSONObject
iterateElement
(
Element
element
)
{
List
node
=
element
.
getChildren
();
Element
et
=
null
;
JSONObject
obj
=
new
JSONObject
();
List
list
=
null
;
for
(
int
i
=
0
;
i
<
node
.
size
();
i
++)
{
list
=
new
LinkedList
();
et
=
(
Element
)
node
.
get
(
i
);
if
(
et
.
getTextTrim
().
equals
(
""
))
{
if
(
et
.
getChildren
().
size
()
==
0
)
continue
;
if
(
obj
.
containsKey
(
et
.
getName
()))
{
list
=
(
List
)
obj
.
get
(
et
.
getName
());
}
list
.
add
(
iterateElement
(
et
));
obj
.
put
(
et
.
getName
(),
list
);
}
else
{
if
(
obj
.
containsKey
(
et
.
getName
()))
{
list
=
(
List
)
obj
.
get
(
et
.
getName
());
}
list
.
add
(
et
.
getTextTrim
());
obj
.
put
(
et
.
getName
(),
list
);
}
}
return
obj
;
}
/**
* JsonObject转换成xml
*
* @param json
* @return
*/
public
static
String
JsonBean2XmlString
(
JSONObject
json
){
System
.
out
.
println
(
"JsonBean转换成xml:"
);
System
.
out
.
println
(
"json:"
+
json
);
StringBuffer
sb
=
new
StringBuffer
(
"<?xml version=\"1.0\" encoding=\"GBK\"?><Result>"
);
for
(
Object
key
:
json
.
keySet
()){
sb
.
append
(
"<"
).
append
(
key
).
append
(
">"
);
Object
value
=
json
.
get
(
key
);
//判断value是否含有JSONArray
try
{
JSONObject
jsonV
=
((
JSONObject
)
value
);
for
(
Object
key2
:
jsonV
.
keySet
()){
sb
.
append
(
"<"
).
append
(
key2
).
append
(
">"
);
Object
value2
=
jsonV
.
get
(
key2
);
sb
.
append
(
value2
);
sb
.
append
(
"</"
).
append
(
key2
).
append
(
">"
);
}
}
catch
(
Exception
e
){
sb
.
append
(
value
);
}
sb
.
append
(
"</"
).
append
(
key
).
append
(
">"
);
}
sb
.
append
(
"</Result>"
);
return
sb
.
toString
();
}
public
static
void
main
(
String
[]
args
)
throws
JDOMException
,
IOException
{
String
xml
=
"<?xml version=\"1.0\" encoding=\"utf-8\" ?><MoBaoAccount MessageType=\"UserMobilePay\" PlatformID=\"b2ctest\"><OrderNo>M20150521084825</OrderNo><TradeAmt>5000.00</TradeAmt><Commission>0.5</Commission><UserID>zhuxiaolong</UserID><MerchID>zhuxiaolong1</MerchID><tradeType>0</tradeType><CustParam>123</CustParam> <NotifyUrl>http://mobaopay.com/callback.do</NotifyUrl><TradeSummary>订单</TradeSummary></MoBaoAccount>"
;
JSONObject
json
=
xml2JSON
(
xml
.
getBytes
());
System
.
out
.
println
(
json
.
toJSONString
());
System
.
out
.
println
(
JsonBean2XmlString
(
json
));
}
}
src/main/java/com/thinkgem/jeesite/modules/pay/service/PayApiService.java
View file @
1203dd4c
...
...
@@ -8,6 +8,7 @@ import com.thinkgem.jeesite.common.config.Global;
import
com.thinkgem.jeesite.common.constant.ComCode
;
import
com.thinkgem.jeesite.common.utils.DateUtils
;
import
com.thinkgem.jeesite.common.utils.IdGen
;
import
com.thinkgem.jeesite.common.utils.StringUtils
;
import
com.thinkgem.jeesite.modules.commonError.MyException
;
import
com.thinkgem.jeesite.modules.pay.alipay.service.AlipayService
;
import
com.thinkgem.jeesite.modules.pay.dao.PayApiDao
;
...
...
@@ -24,6 +25,8 @@ import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayIntegralSe
import
com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayJFenService
;
import
com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayService
;
import
com.thinkgem.jeesite.modules.pay.juhezhong.utils.MakeOrderNum
;
import
com.thinkgem.jeesite.modules.pay.pinganbank.PingAnBankService
;
import
com.thinkgem.jeesite.modules.pay.pinganbank.dto.PingAnBankDto
;
import
com.thinkgem.jeesite.modules.sys.entity.Dict
;
import
com.thinkgem.jeesite.modules.sys.service.SystemService
;
import
com.thinkgem.jeesite.modules.sys.utils.DictUtils
;
...
...
@@ -71,6 +74,9 @@ public class PayApiService {
@Autowired
private
AlipayService
alipayService
;
@Autowired
private
PingAnBankService
pingAnBankService
;
/**
* 快捷支付(分为不同的渠道)
...
...
@@ -841,6 +847,73 @@ public class PayApiService {
/**
* 提现
* @param request
* @return
* @throws AlipayApiException
*/
@Transactional
(
readOnly
=
false
)
public
Response
putForward
(
JuHeZhongPayRequest
request
)
throws
Exception
{
// 1. 根据入参获取用户详情信息,包括支付卡片信息
UserEntity
userEntity
=
userService
.
getUserInfo
(
new
Request
(
request
.
getSubMerchantCode
()));
userEntity
=
userService
.
getUserDetailInfo
(
userEntity
);
CardEntity
cardEntity
=
userService
.
getCardInfo
(
request
);
// 2. 创建支付订单信息,并保存
String
code
=
IdGen
.
randomBase62
(
64
);
String
payNo
=
ComCode
.
YYYYMMDDHHMM
.
format
(
new
Date
())
+
IdGen
.
randomBase62
(
8
);
// 订单号
String
payCode
=
IdGen
.
randomBase62
(
20
);
OrderEntity
orderEntity
=
new
OrderEntity
(
code
,
request
.
getSubMerchantCode
(),
payNo
,
payCode
,
ComCode
.
PAYMETHOD_PUTFORWARD
,
ComCode
.
PAYMETHOD_PUTFORWARD
,
"1"
,
request
.
getAmount
()
,
"提现"
,
""
,
"0"
,
request
.
getCardCode
());
payDao
.
saveOrderInfo
(
orderEntity
);
// 平安银行转账
PingAnBankDto
dto
=
new
PingAnBankDto
();
dto
.
setOrderCode
(
payCode
);
dto
.
setEnterprisecode
(
ComCode
.
PINGANBANK_ENTERPRISECODE
);
// dto.setEnterprisecode("00103082100008003000");
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"ThirdVoucher"
,
payCode
);
// 转账凭证号 标示交易唯一性,同一客户上送的不可重复,建议格式:yyyymmddHHSS+8位系列
jsonObject
.
put
(
"CcyCode"
,
"RMB"
);
// 货币类型 RMB-人民币
jsonObject
.
put
(
"OutAcctNo"
,
ComCode
.
PINGANBANK_OUTACCTNO
);
// 付款人账户 扣款账户
jsonObject
.
put
(
"OutAcctName"
,
ComCode
.
PINGANBANK_OUTACCTNAME
);
// 付款人名称 付款账户户名
jsonObject
.
put
(
"OutAcctAddr"
,
"34343"
);
// 付款人地址 建议填写付款账户的分行、网点名称 非必输
jsonObject
.
put
(
"InAcctBankNode"
,
cardEntity
.
getBelongBank
());
// 收款人开户行行号 跨行转账建议必输。为人行登记在册的商业银行号
jsonObject
.
put
(
"InAcctNo"
,
cardEntity
.
getCardNo
());
// 收款人账户
jsonObject
.
put
(
"InAcctName"
,
userEntity
.
getUserDetail
().
getRealName
());
// 收款人账户户名
jsonObject
.
put
(
"InAcctBankName"
,
cardEntity
.
getBankName
());
// 收款人开户行名称
jsonObject
.
put
(
"TranAmount"
,
request
.
getAmount
());
// 转出金额 如为XML报文,则直接输入输出以元为单位的浮点数值,如2.50 (两元五角)
jsonObject
.
put
(
"UseEx"
,
"ZZZZZtestreturn"
);
// 资金用途 30个汉字。现金管理代理结算 非必输
jsonObject
.
put
(
"UnionFlag"
,
cardEntity
.
getBelongBank
().
equals
(
ComCode
.
PINGANBANK_OUTACCTBANK
)?
1
:
0
);
// 行内跨行标志 1:行内转账,0:跨行转账
jsonObject
.
put
(
"SysFlag"
,
"1"
);
// Y:加急 N:普通S:特急默认为N
jsonObject
.
put
(
"AddrFlag"
,
"1"
);
// 同城/异地标志 “1”—同城 “2”—异地;若无法区分,可默认送1-同城。
JSONObject
result
=
pingAnBankService
.
singleTransfer
(
dto
,
jsonObject
);
Response
response
=
new
Response
();
if
(
result
.
get
(
"all"
)
!=
null
){
String
str
=
result
.
getString
(
"all"
);
String
reg
=
"[^\u4e00-\u9fa5]"
;
str
=
str
.
replaceAll
(
reg
,
" "
);
str
=
str
.
trim
();
System
.
out
.
println
(
str
);
response
.
setMessage
(
str
);
response
.
setStatus
(
ComCode
.
STATUS_CODE_9998
);
return
response
;
}
// response.setMessage(str);
response
.
setStatus
(
ComCode
.
STATUS_CODE_2000
);
return
response
;
}
/**
* 回调
* @param orderEntity
* @return
...
...
@@ -957,11 +1030,14 @@ public class PayApiService {
return
payDao
.
getOrder
(
orderEntity
);
}
/**
* 交易超过7天则修改为交易失败
*/
@Transactional
(
readOnly
=
false
)
public
void
updateOrderTiming
(){
// System.out.println("。。。。。。。定时任务。updateOrderTiming开始。。。。");
OrderEntity
orderEntity
=
new
OrderEntity
();
orderEntity
.
setEndTime
(
DateUtils
.
get
Yesterday
(
DateUtils
.
getYesterday
(
"yyyy-MM-dd HH:mm:ss"
)
));
orderEntity
.
setEndTime
(
DateUtils
.
get
DateByDay
(
"yyyy-MM-dd HH:mm:ss"
,-
7
));
List
<
OrderEntity
>
list
=
payDao
.
getOrderListTimeing
(
orderEntity
);
for
(
OrderEntity
order:
list
){
order
.
setPayStatus
(
"3"
);
...
...
@@ -973,15 +1049,21 @@ public class PayApiService {
// System.out.println("。。。。。。。定时任务。updateOrderTiming结束。。。。");
}
/*
* 查询交易的状态并修改
*/
@Transactional
(
readOnly
=
false
)
public
void
updateOrders
(){
// System.out.println("。。。。。。。定时任务。updateOrders开始。。。。");
try
{
OrderEntity
orderEntity
=
new
OrderEntity
();
orderEntity
.
setStartTime
(
DateUtils
.
get
Yesterday
(
DateUtils
.
getYesterday
(
"yyyy-MM-dd HH:mm:ss"
)
));
orderEntity
.
setStartTime
(
DateUtils
.
get
DateByDay
(
"yyyy-MM-dd HH:mm:ss"
,-
7
));
orderEntity
.
setEndTime
(
DateUtils
.
formatDate
(
DateUtils
.
addHours
(
new
Date
(),-
12
),
"yyyy-MM-dd HH:mm:ss"
));
List
<
OrderEntity
>
list
=
payDao
.
getOrderListTimeing
(
orderEntity
);
for
(
OrderEntity
order:
list
){
// 快捷支付
if
(
"quick"
.
equals
(
order
.
getPayMethod
())){
QuickDto
dto
=
new
QuickDto
();
dto
.
setOrderId
(
order
.
getPayCode
());
...
...
@@ -1012,11 +1094,36 @@ public class PayApiService {
payDao
.
deleteBenefit
(
benefitEntity
);
}
}
}
else
if
(
"put_forward"
.
equals
(
order
.
getPayMethod
())){
// 提现
// 查询单笔转账
PingAnBankDto
dto
=
new
PingAnBankDto
();
dto
.
setOrderCode
(
IdGen
.
randomBase62
(
20
));
dto
.
setEnterprisecode
(
ComCode
.
PINGANBANK_ENTERPRISECODE
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"OrigThirdVoucher"
,
order
.
getPayCode
());
// 转账凭证号 推荐使用;使用4004接口上送的ThirdVoucher或者4014上送的SThirdVoucher
JSONObject
jsonObject1
=
pingAnBankService
.
querySingleTransfer
(
dto
,
jsonObject
);
if
(
"20"
.
equals
(
jsonObject1
.
getString
(
"Stt"
))){
// 交易成功
order
.
setPayStatus
(
"2"
);
payDao
.
updateOrderStatus
(
order
);
// 添加提现记录
String
benefitCode
=
IdGen
.
randomBase62
(
64
);
BenefitEntity
benefitEntity
=
new
BenefitEntity
(
benefitCode
,
order
.
getUserCode
(),
order
.
getPayCode
(),
order
.
getPayChannel
(),
"0"
,
"M"
,
order
.
getAmount
(),
order
.
getCardCode
());
// benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
benefitEntity
.
setPayMethod
(
orderEntity
.
getPayMethod
());
payDao
.
saveBenefitInfo
(
benefitEntity
);
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
// System.out.println("。。。。。。。定时任务。updateOrders结束。。。。");
}
}
src/main/resources/mappings/modules/sys/DictDao.xml
View file @
1203dd4c
...
...
@@ -108,7 +108,8 @@
<select
id=
"findDictListPayChannel"
resultType=
"com.thinkgem.jeesite.modules.sys.entity.DictPayChannel"
>
SELECT
value,
label
label,
remarks
FROM sys_dict
WHERE del_flag = #{DEL_FLAG_NORMAL}
<if
test=
"type != null and type != ''"
>
...
...
src/main/resources/mappings/modules/user/UserDao.xml
View file @
1203dd4c
...
...
@@ -829,9 +829,11 @@
yc.create_by AS createdUser,
yc.update_date AS modified,
yc.update_by AS modifiedUser,
yc.del_flag AS delFlag
yc.del_flag AS delFlag,
yb.bank_name AS bankName
FROM
youka_cards yc
LEFT JOIN youka_bank yb ON yb.bank_code = yc.belong_bank
WHERE
yc.card_no = #{cardNo}
</select>
...
...
src/main/resources/youka.properties
View file @
1203dd4c
...
...
@@ -148,3 +148,25 @@ weixin.appsecret = libo13821934497libo1382193449700
alipay.appid
=
2018041002530242
alipay.private.key
=
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3hFTccWmIFkIQzitDdGTgWKgbs1S2NZutDlUCdiWrXSV+aAvQDqpLXJb7CQ1iSY3CJ4rPbBs7GFZj1rZ1T722Xj1QiFJRTgSSaUe9gejDFOIBpyoG0gT7gZsFrdcYHCzJcA3L9LUWt9XLLH34couARVGY8FUa1GXVUierMms4JnJ1I+Eos4jBmTpLFpZb6brsfuGOzk501KWk+mVXhdEf47MoT6i0ujebf22rdWqQz4ukS7eRbRfvoh0g5wEt14NQHXFLgSAqPN+ZDpKQ8H9Cz0Mj37iN0SA31j3S/Cl0zyPL9n+bWSJdE2MDge8nC7joR4Nxbqirlp3qJ7YOtMghAgMBAAECggEAXG9JFygA0cz0Reayn+1WijHdquYu+wARg58+blj4LFJkekEKAigA2qiuW495sFIAFxU3s7ZuGNvvV6ZkjL43fk4FcDTZ0Z4Ma3qf6fIvPWOdWtvKLVlHrS7g2IFxX/GBFY1dRafiNqkuBIJKiQOZBGjl6rTTCQqGqGYTGQXyP3syu72Nc1p7cq2a4H4Ux+vAC0OxYuCeL12wR5qf1PJ0O+h/syr7+WY7sez5ae36e82C6iQfl3RNqAQyuiqADhUFa/IoKhb1IklddKZZkiU0wsNeLsqkklNSXgejlPKom5MLyRloSyEqARvXBTfAXPn0IkQ9eYNLh1k2MOh5SfqKyQKBgQDum0+irr4T0gpYJ51YzJIjEBn5bUOo0Q0vYb0jRQ0y0lfmAqSTV4RdlasMf8Ny3DZvO1C4nTQ0/Mv2HDJTtLUAC/VntEiKdgS0Dj0iyqTqWXYtTsA1zKr+7RgjPdOC3P7y6lbV+xfmnjHKGFIGKPaxeNVQe72bbLrg5QTMYw0A1wKBgQDE5PqXl6lvEFbNDyHIXOnfXyox1Q881fTZKavKOel6kGP1Qn82BrEC/BF+8ZkGCe/HHuzuFPcw7sInV13xBEVOegcHximXmiR5S8j/SfkTFtrKttMkaZPoW64RrNNsnPckhLTymTefpXX4JQj/ZkNtfg3VO2O9VKkJy74X417HxwKBgBPNYfOPawj8Eo20Y/OdrrcoO++eaNIW33BCPU8zCOBh4pedOolb5wlZRYPZCqB6tC3RD2by7QVEwaygNHEL+0WQuIItzSNongVPdTVw+fTVDeC+u2b7oGldxfYOyIIA00vXtPM3Tol+MYWjNRN7zNV3wMRYMKk4gd3uQ9KumcKrAoGBAIDbAgz3mlEvNj9ZKdjAxeYDl8+pCiHcPDNrDBx6rgwiNuiprisjUfEMGj8jyeuj0SJVYOWnHucNOk8Y5Ef5bYogXj1+OHYY0Mn5CP/Z34HYsTN9Vs07syqb5V13553rU+q4Vtt13mtCk+PkCPFscbBUkKT+CxY7M61Pg4aKrNq9AoGATMAwhGqTdcXvBb1XV5ScbP+UIkqLbib8eYDJRIMlCGGqDMbOoBQQ9joJFtZjV2sL0QwF7qaxtjLs+VVnZkVYHRtn25frtb7teLRuJB7rW9905zqGtCx730uSCX8PuyPS98cV0KnuVCIZZMQbLNVb2M/u/ENJYqSVAETy+xAs7hQ=
alipay.public.key
=
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg3CAeybKvbk7slUC6wCZiqGKgZwwcL4vvlztKO52xqTnHcsxhC+ogrtg5x59+3T4fKqOs38vC8faEbGbCUqr68hrjXkE0ZuPWygrp3jTUC9vkw+d+Fk18xsoRqac3b7OeNVLbCN9Nq2rAzVqLrNeQFWjpZbXFpPcvSLH3rv4U3ljhjvFnEGOpxu8vdpc/AGwZ+R2GX3yH1W85iWcO3GAEC3raTRq3RRgsKC3WZTq85Vxl70K0FfLKDjNTOQVnEwfYS9wTl4zDTBObxAfQEdH03fXJTkpLwAKlsiJiPRsfyoJMFA6nVCfKhjJwXia99MT1kGHVRyPu/JpaXepme2orwIDAQAB
## 平安银行相关
## 企业代码
pinganbank.enterprisecode
=
00202043000000326000
## 企业账号
pinganbank.account
=
15000092480851
## 企业的付款人账号
pinganbank.outacctno
=
15000092480851
## 企业的付款人姓名
pinganbank.outacctname
=
天津盛世互通网络科技有限公司
## 企业银行代码
pinganbank.outacctbank
=
307110004315
## 企业银行代码
pinganbank.b2bicurl
=
http://39.107.124.166:7072
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