Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
youka-manage
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-manage
Commits
9da0047a
Commit
9da0047a
authored
May 14, 2018
by
Java-聂换换
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
费率修改
parent
cdd88e7c
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
2045 additions
and
3 deletions
+2045
-3
pom.xml
pom.xml
+8
-0
ComCode.java
src/main/java/com/thinkgem/jeesite/common/constant/ComCode.java
+19
-0
YoukaUserDao.java
src/main/java/com/thinkgem/jeesite/modules/youka/dao/YoukaUserDao.java
+4
-0
ApiQuickPayDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/ApiQuickPayDto.java
+70
-0
CommonDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/CommonDto.java
+149
-0
MerchantDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/MerchantDto.java
+129
-0
MerchantsEntering.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/MerchantsEntering.java
+33
-0
PayBackDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/PayBackDto.java
+56
-0
QrCodeDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/QrCodeDto.java
+66
-0
QuickDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/QuickDto.java
+113
-0
TranstionDto.java
src/main/java/com/thinkgem/jeesite/modules/youka/dto/TranstionDto.java
+77
-0
UserSubMchId.java
src/main/java/com/thinkgem/jeesite/modules/youka/entity/UserSubMchId.java
+43
-0
JuHeZhongPayJFenService.java
src/main/java/com/thinkgem/jeesite/modules/youka/service/JuHeZhongPayJFenService.java
+85
-0
YoukaRateService.java
src/main/java/com/thinkgem/jeesite/modules/youka/service/YoukaRateService.java
+19
-0
YoukaUserService.java
src/main/java/com/thinkgem/jeesite/modules/youka/service/YoukaUserService.java
+10
-1
Bean2Map.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/Bean2Map.java
+118
-0
CharsetUtil.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/CharsetUtil.java
+23
-0
DateUtil.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/DateUtil.java
+40
-0
HttpUtil.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/HttpUtil.java
+350
-0
JFenHttpUtil.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/JFenHttpUtil.java
+388
-0
MD5Utils.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/MD5Utils.java
+138
-0
MakeOrderNum.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/MakeOrderNum.java
+54
-0
SignUtils.java
src/main/java/com/thinkgem/jeesite/modules/youka/utils/SignUtils.java
+32
-0
YoukaUserDao.xml
src/main/resources/mappings/modules/youka/YoukaUserDao.xml
+13
-0
youka.properties
src/main/resources/youka.properties
+8
-2
No files found.
pom.xml
View file @
9da0047a
...
@@ -55,6 +55,7 @@
...
@@ -55,6 +55,7 @@
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<downloadSources>
true
</downloadSources>
<downloadSources>
true
</downloadSources>
<httpclient.version>
4.5
</httpclient.version>
</properties>
</properties>
<!-- 设定主仓库,按设定顺序进行查找。 -->
<!-- 设定主仓库,按设定顺序进行查找。 -->
...
@@ -641,6 +642,13 @@
...
@@ -641,6 +642,13 @@
<artifactId>
json-lib
</artifactId>
<artifactId>
json-lib
</artifactId>
<version>
2.4
</version>
<version>
2.4
</version>
</dependency>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<version>
${httpclient.version}
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
src/main/java/com/thinkgem/jeesite/common/constant/ComCode.java
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
common
.
constant
;
package
com
.
thinkgem
.
jeesite
.
common
.
constant
;
import
com.thinkgem.jeesite.common.config.Global
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
/**
/**
...
@@ -57,4 +59,21 @@ public class ComCode {
...
@@ -57,4 +59,21 @@ public class ComCode {
public
static
final
String
STATUS_CODE_4009_DESC
=
"验证码已过期"
;
public
static
final
String
STATUS_CODE_4009_DESC
=
"验证码已过期"
;
public
static
final
String
STATUS_CODE_4010
=
"4010"
;
public
static
final
String
STATUS_CODE_4010
=
"4010"
;
public
static
final
String
STATUS_CODE_4010_DESC
=
"验证码场景错误"
;
public
static
final
String
STATUS_CODE_4010_DESC
=
"验证码场景错误"
;
/**
* payChannel 通道
*/
public
static
final
String
PAYCHANNEL_HL1
=
"quick_no_integral"
;
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
HOST
=
"http://pay.hezhongpay.com"
;
// 请求地址
public
static
final
String
JFEN_MERCHANT_ID
=
Global
.
getConfig
(
"pay.jfen.merchant_id"
);
// 商户号
public
static
final
String
JFEN_MERCHANT_KEY
=
Global
.
getConfig
(
"pay.jfen.merchant.key"
);
//"670993bf-dd22-4464-9d81-69595d36b794"; // 商户key
public
static
final
String
JFEN_MERCHANT_SECRET
=
Global
.
getConfig
(
"pay.jfen.merchant.secret"
);
//"289ada73-27db-49e0-b2ad-3ae1613a665a"; // 商户sescet
//商户入网
public
static
final
String
JFEN_MICRO_HANDLE_URL
=
"/merchant/handle"
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dao/YoukaUserDao.java
View file @
9da0047a
...
@@ -3,6 +3,7 @@ package com.thinkgem.jeesite.modules.youka.dao;
...
@@ -3,6 +3,7 @@ package com.thinkgem.jeesite.modules.youka.dao;
import
com.thinkgem.jeesite.common.persistence.CrudDao
;
import
com.thinkgem.jeesite.common.persistence.CrudDao
;
import
com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao
;
import
com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao
;
import
com.thinkgem.jeesite.modules.cms.entity.Article
;
import
com.thinkgem.jeesite.modules.cms.entity.Article
;
import
com.thinkgem.jeesite.modules.youka.entity.UserSubMchId
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaUser
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaUser
;
import
java.util.List
;
import
java.util.List
;
...
@@ -21,4 +22,7 @@ public interface YoukaUserDao extends CrudDao<YoukaUser> {
...
@@ -21,4 +22,7 @@ public interface YoukaUserDao extends CrudDao<YoukaUser> {
public
YoukaUser
checkMobile
(
YoukaUser
youkaUser
);
public
YoukaUser
checkMobile
(
YoukaUser
youkaUser
);
// 根据通道获取Submchid
public
List
<
UserSubMchId
>
getUserSubmchid
(
UserSubMchId
userSubMchId
);
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/ApiQuickPayDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
/**
* 快捷支付
*/
public
class
ApiQuickPayDto
extends
MerchantDto
{
private
String
name
;
//商户展示名称
private
String
body
;
//商品名称
private
String
url
;
//快捷返回地址
private
String
notifyUrl
;
//通知地址
private
String
frontUrl
;
//前台地址
private
Long
amount
;
//金额 统一用分
private
Integer
type
;
//交易类型
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getBody
()
{
return
body
;
}
public
void
setBody
(
String
body
)
{
this
.
body
=
body
;
}
public
String
getUrl
()
{
return
url
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getNotifyUrl
()
{
return
notifyUrl
;
}
public
void
setNotifyUrl
(
String
notifyUrl
)
{
this
.
notifyUrl
=
notifyUrl
;
}
public
String
getFrontUrl
()
{
return
frontUrl
;
}
public
void
setFrontUrl
(
String
frontUrl
)
{
this
.
frontUrl
=
frontUrl
;
}
public
Long
getAmount
()
{
return
amount
;
}
public
void
setAmount
(
Long
amount
)
{
this
.
amount
=
amount
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/CommonDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
/**
* 平台交易公共属性
*/
public
class
CommonDto
implements
java
.
io
.
Serializable
{
private
String
orderId
;
//平台订单号
private
String
merchantId
;
//商户id
private
String
merchantKey
;
//商户密钥
private
Long
timestamp
;
//时间戳
private
Long
amount
;
//金额 统一用分
private
String
sign
;
//签名
private
String
notifyUrl
;
//通知地址
private
String
frontUrl
;
//前台地址
private
String
productName
;
//商品名称
private
Integer
type
;
//交易类型
private
Integer
settleType
;
//结算类型
private
String
url
;
//多功能
private
String
msg
;
//响应消息
private
String
code
;
//响应码
public
String
getMsg
()
{
return
msg
;
}
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getUrl
()
{
return
url
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getFrontUrl
()
{
return
frontUrl
;
}
public
void
setFrontUrl
(
String
frontUrl
)
{
this
.
frontUrl
=
frontUrl
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
Integer
getSettleType
()
{
return
settleType
;
}
public
void
setSettleType
(
Integer
settleType
)
{
this
.
settleType
=
settleType
;
}
public
String
getProductName
()
{
return
productName
;
}
public
void
setProductName
(
String
productName
)
{
this
.
productName
=
productName
;
}
public
String
getNotifyUrl
()
{
return
notifyUrl
;
}
public
void
setNotifyUrl
(
String
notifyUrl
)
{
this
.
notifyUrl
=
notifyUrl
;
}
public
Long
getAmount
()
{
return
amount
;
}
public
void
setAmount
(
Long
amount
)
{
this
.
amount
=
amount
;
}
public
String
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
}
public
String
getMerchantId
()
{
return
merchantId
;
}
public
void
setMerchantId
(
String
merchantId
)
{
this
.
merchantId
=
merchantId
;
}
public
String
getMerchantKey
()
{
return
merchantKey
;
}
public
void
setMerchantKey
(
String
merchantKey
)
{
this
.
merchantKey
=
merchantKey
;
}
public
Long
getTimestamp
()
{
return
timestamp
;
}
public
void
setTimestamp
(
Long
timestamp
)
{
this
.
timestamp
=
timestamp
;
}
public
String
getSign
()
{
return
sign
;
}
public
void
setSign
(
String
sign
)
{
this
.
sign
=
sign
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/MerchantDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
import
java.math.BigDecimal
;
/**
* 小微商户开通
*/
public
class
MerchantDto
extends
TranstionDto
{
private
String
subMchId
;
//子商户号
private
String
idType
;
//证件类型
private
String
accName
;
//持卡人姓名
private
String
accNo
;
//卡号
private
String
accProvince
;
//开通省份
private
String
accCity
;
//开通城市
private
String
mobile
;
//预留手机号
private
String
idNo
;
//证件号码
private
BigDecimal
settleRate
;
//结算费率
private
BigDecimal
extraRate
;
//T0费率
private
Integer
accType
;
//账户类型
private
String
bankCode
;
public
String
getBankCode
()
{
return
bankCode
;
}
public
void
setBankCode
(
String
bankCode
)
{
this
.
bankCode
=
bankCode
;
}
public
String
getAccProvince
()
{
return
accProvince
;
}
public
void
setAccProvince
(
String
accProvince
)
{
this
.
accProvince
=
accProvince
;
}
public
String
getAccCity
()
{
return
accCity
;
}
public
void
setAccCity
(
String
accCity
)
{
this
.
accCity
=
accCity
;
}
public
String
getSubMchId
()
{
return
subMchId
;
}
public
void
setSubMchId
(
String
subMchId
)
{
this
.
subMchId
=
subMchId
;
}
public
String
getIdType
()
{
return
idType
;
}
public
void
setIdType
(
String
idType
)
{
this
.
idType
=
idType
;
}
public
String
getAccName
()
{
return
accName
;
}
public
void
setAccName
(
String
accName
)
{
this
.
accName
=
accName
;
}
public
String
getAccNo
()
{
return
accNo
;
}
public
void
setAccNo
(
String
accNo
)
{
this
.
accNo
=
accNo
;
}
public
String
getMobile
()
{
return
mobile
;
}
public
void
setMobile
(
String
mobile
)
{
this
.
mobile
=
mobile
;
}
public
String
getIdNo
()
{
return
idNo
;
}
public
void
setIdNo
(
String
idNo
)
{
this
.
idNo
=
idNo
;
}
public
BigDecimal
getSettleRate
()
{
return
settleRate
;
}
public
void
setSettleRate
(
BigDecimal
settleRate
)
{
this
.
settleRate
=
settleRate
;
}
public
BigDecimal
getExtraRate
()
{
return
extraRate
;
}
public
void
setExtraRate
(
BigDecimal
extraRate
)
{
this
.
extraRate
=
extraRate
;
}
public
Integer
getAccType
()
{
return
accType
;
}
public
void
setAccType
(
Integer
accType
)
{
this
.
accType
=
accType
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/MerchantsEntering.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
import
java.math.BigDecimal
;
public
class
MerchantsEntering
extends
CommonDto
{
private
String
subMchId
;
//子商户号
private
String
subMerchantName
;
// 商户名称
private
String
serviceType
;
// 操作类型 1(参考附录)
private
String
idType
;
//证件类型
private
String
accName
;
//持卡人姓名
private
String
accNo
;
//卡号
private
String
accProvince
;
//开通省份
private
String
accCity
;
//开通城市
private
String
mobile
;
//预留手机号
private
String
idNo
;
//证件号码
private
BigDecimal
settleRate
;
//结算费率
private
BigDecimal
extraRate
;
//T0费率
private
Integer
accType
;
//账户类型
private
String
bankCode
;
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/PayBackDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
/**
* @author niehh
* @Description: 支付返回信息
* @date 2018年03月18日 9:19
*/
public
class
PayBackDto
{
private
String
url
;
// 支付url
private
String
message
;
private
String
payChannel
;
//
private
String
body
;
private
String
isUrl
=
"1"
;
// 是否是返回的url 1是 0否
public
String
getUrl
()
{
return
url
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
String
getPayChannel
()
{
return
payChannel
;
}
public
void
setPayChannel
(
String
payChannel
)
{
this
.
payChannel
=
payChannel
;
}
public
String
getIsUrl
()
{
return
isUrl
;
}
public
void
setIsUrl
(
String
isUrl
)
{
this
.
isUrl
=
isUrl
;
}
public
String
getBody
()
{
return
body
;
}
public
void
setBody
(
String
body
)
{
this
.
body
=
body
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/QrCodeDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
/**
* Created by lishi on 2017/11/21.
*/
public
class
QrCodeDto
extends
CommonDto
{
private
String
terminalId
;
//付款码
private
String
subMchId
=
""
;
//子商户号
private
String
bankSettNo
=
""
;
//联行号
private
String
acctName
=
""
;
//收款人姓名
private
String
acctNo
=
""
;
//收款人账号
private
String
idNo
=
""
;
//证件号码
public
String
getSubMchId
()
{
return
subMchId
;
}
public
void
setSubMchId
(
String
subMchId
)
{
this
.
subMchId
=
subMchId
;
}
public
String
getBankSettNo
()
{
return
bankSettNo
;
}
public
void
setBankSettNo
(
String
bankSettNo
)
{
this
.
bankSettNo
=
bankSettNo
;
}
public
String
getAcctName
()
{
return
acctName
;
}
public
void
setAcctName
(
String
acctName
)
{
this
.
acctName
=
acctName
;
}
public
String
getAcctNo
()
{
return
acctNo
;
}
public
void
setAcctNo
(
String
acctNo
)
{
this
.
acctNo
=
acctNo
;
}
public
String
getIdNo
()
{
return
idNo
;
}
public
void
setIdNo
(
String
idNo
)
{
this
.
idNo
=
idNo
;
}
public
String
getTerminalId
()
{
return
terminalId
;
}
public
void
setTerminalId
(
String
terminalId
)
{
this
.
terminalId
=
terminalId
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/QuickDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
import
java.math.BigDecimal
;
/**
* Created by lishi on 2017/11/12.
*/
public
class
QuickDto
extends
CommonDto
{
private
Integer
trxType
;
//交易类型 默认传2 T1(2,"T1"), D0(3,"D0");
private
String
bankNo
;
//支付银行卡号
private
String
frontUrl
;
//前台返回地址
private
String
certificateCode
;
//身份证号
private
String
settleBankName
;
//结算银行
private
String
settleBankNo
;
//结算银行卡号
private
String
name
;
//真实姓名
private
String
phone
;
//交易卡预留手机号
private
String
settleBankPhone
;
//结算卡手机号
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
public
String
getSettleBankPhone
()
{
return
settleBankPhone
;
}
public
void
setSettleBankPhone
(
String
settleBankPhone
)
{
this
.
settleBankPhone
=
settleBankPhone
;
}
private
BigDecimal
userFee
;
public
BigDecimal
getUserFee
()
{
return
userFee
;
}
public
void
setUserFee
(
BigDecimal
userFee
)
{
this
.
userFee
=
userFee
;
}
public
Integer
getTrxType
()
{
return
trxType
;
}
public
void
setTrxType
(
Integer
trxType
)
{
this
.
trxType
=
trxType
;
}
public
String
getBankNo
()
{
return
bankNo
;
}
public
void
setBankNo
(
String
bankNo
)
{
this
.
bankNo
=
bankNo
;
}
@Override
public
String
getFrontUrl
()
{
return
frontUrl
;
}
@Override
public
void
setFrontUrl
(
String
frontUrl
)
{
this
.
frontUrl
=
frontUrl
;
}
public
String
getCertificateCode
()
{
return
certificateCode
;
}
public
void
setCertificateCode
(
String
certificateCode
)
{
this
.
certificateCode
=
certificateCode
;
}
public
String
getSettleBankName
()
{
return
settleBankName
;
}
public
void
setSettleBankName
(
String
settleBankName
)
{
this
.
settleBankName
=
settleBankName
;
}
public
String
getSettleBankNo
()
{
return
settleBankNo
;
}
public
void
setSettleBankNo
(
String
settleBankNo
)
{
this
.
settleBankNo
=
settleBankNo
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/dto/TranstionDto.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
dto
;
import
javax.xml.bind.annotation.XmlRootElement
;
@XmlRootElement
public
class
TranstionDto
implements
java
.
io
.
Serializable
{
private
String
msg
;
//响应消息
private
String
code
;
//响应码
private
String
sign
;
//签名
private
String
orderId
;
//平台订单号
private
String
merchantKey
;
//商户密钥
private
Long
timestamp
;
//时间戳
private
String
merchantId
;
public
String
getMsg
()
{
return
msg
;
}
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getSign
()
{
return
sign
;
}
public
void
setSign
(
String
sign
)
{
this
.
sign
=
sign
;
}
public
String
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
}
public
String
getMerchantKey
()
{
return
merchantKey
;
}
public
void
setMerchantKey
(
String
merchantKey
)
{
this
.
merchantKey
=
merchantKey
;
}
public
Long
getTimestamp
()
{
return
timestamp
;
}
public
void
setTimestamp
(
Long
timestamp
)
{
this
.
timestamp
=
timestamp
;
}
public
String
getMerchantId
()
{
return
merchantId
;
}
public
void
setMerchantId
(
String
merchantId
)
{
this
.
merchantId
=
merchantId
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/entity/UserSubMchId.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
entity
;
public
class
UserSubMchId
{
private
String
userCode
;
private
String
submchid
;
private
String
payChannel
;
private
String
level
;
public
String
getUserCode
()
{
return
userCode
;
}
public
void
setUserCode
(
String
userCode
)
{
this
.
userCode
=
userCode
;
}
public
String
getSubmchid
()
{
return
submchid
;
}
public
void
setSubmchid
(
String
submchid
)
{
this
.
submchid
=
submchid
;
}
public
String
getPayChannel
()
{
return
payChannel
;
}
public
void
setPayChannel
(
String
payChannel
)
{
this
.
payChannel
=
payChannel
;
}
public
String
getLevel
()
{
return
level
;
}
public
void
setLevel
(
String
level
)
{
this
.
level
=
level
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/service/JuHeZhongPayJFenService.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
service
;
import
com.alibaba.fastjson.JSONObject
;
import
com.thinkgem.jeesite.common.constant.ComCode
;
import
com.thinkgem.jeesite.modules.youka.dto.CommonDto
;
import
com.thinkgem.jeesite.modules.youka.dto.QrCodeDto
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaRate
;
import
com.thinkgem.jeesite.modules.youka.utils.Bean2Map
;
import
com.thinkgem.jeesite.modules.youka.utils.JFenHttpUtil
;
import
com.thinkgem.jeesite.modules.youka.utils.MakeOrderNum
;
import
com.thinkgem.jeesite.modules.youka.utils.SignUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Map
;
/**
* 首页通知
*/
@Service
@Transactional
(
readOnly
=
true
)
public
class
JuHeZhongPayJFenService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
Logger
.
class
);
/**
* 商户入驻
* @param dto
* @return
* @throws Exception
*/
public
JSONObject
merchantIn
(
JSONObject
dto
)
throws
Exception
{
dto
.
put
(
"merchantId"
,
ComCode
.
JFEN_MERCHANT_ID
);
dto
.
put
(
"merchantKey"
,
ComCode
.
JFEN_MERCHANT_KEY
);
String
signBefore
=
SignUtils
.
signBefore
(
dto
);
logger
.
info
(
"signBefore:{}"
,
signBefore
);
String
sign
=
SignUtils
.
sign
(
signBefore
,
ComCode
.
JFEN_MERCHANT_SECRET
);
dto
.
put
(
"sign"
,
sign
);
String
respStr
=
JFenHttpUtil
.
postRaw
(
ComCode
.
HOST
+
ComCode
.
JFEN_MICRO_HANDLE_URL
,
dto
.
toString
());
return
JSONObject
.
parseObject
(
respStr
);
}
/**
* 修改费率
* @param dto
* @return
* @throws Exception
*/
public
JSONObject
merchantModifyFeel
(
JSONObject
dto
)
throws
Exception
{
dto
.
put
(
"timestamp"
,
System
.
currentTimeMillis
());
dto
.
put
(
"serviceType"
,
"7"
);
dto
.
put
(
"orderId"
,
MakeOrderNum
.
makeOrderNum
());
return
merchantIn
(
dto
);
}
/**
* JuHeZhong支付用户费率
* @param rateEntity
* @return
* @throws
* @throws Exception
*/
public
void
merchantFeelJFen
(
String
subMchId
,
YoukaRate
rateEntity
)
throws
Exception
{
// 修改费率
JSONObject
dto
=
new
JSONObject
();
dto
.
put
(
"subMchId"
,
subMchId
);
dto
.
put
(
"paymentType"
,
"QUICKPAY"
);
dto
.
put
(
"d0Fee"
,
rateEntity
.
getRate
());
dto
.
put
(
"d1Fee"
,
rateEntity
.
getRate
());
JSONObject
jsonObject
=
null
;
jsonObject
=
this
.
merchantModifyFeel
(
dto
);
if
(!
"0000"
.
equals
(
jsonObject
.
getString
(
"code"
)))
{
}
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/service/YoukaRateService.java
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
service
;
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
service
;
import
com.thinkgem.jeesite.common.constant.ComCode
;
import
com.thinkgem.jeesite.common.service.CrudService
;
import
com.thinkgem.jeesite.common.service.CrudService
;
import
com.thinkgem.jeesite.common.utils.IdGen
;
import
com.thinkgem.jeesite.common.utils.IdGen
;
import
com.thinkgem.jeesite.modules.sys.entity.Dict
;
import
com.thinkgem.jeesite.modules.sys.entity.Dict
;
import
com.thinkgem.jeesite.modules.sys.utils.DictUtils
;
import
com.thinkgem.jeesite.modules.sys.utils.DictUtils
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaCardDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaCardDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaRateDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaRateDao
;
import
com.thinkgem.jeesite.modules.youka.entity.UserSubMchId
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaCardEntity
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaCardEntity
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaRate
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaRate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -24,6 +27,12 @@ import java.util.Map;
...
@@ -24,6 +27,12 @@ import java.util.Map;
@Transactional
(
readOnly
=
true
)
@Transactional
(
readOnly
=
true
)
public
class
YoukaRateService
extends
CrudService
<
YoukaRateDao
,
YoukaRate
>
{
public
class
YoukaRateService
extends
CrudService
<
YoukaRateDao
,
YoukaRate
>
{
@Autowired
private
YoukaUserService
youkaUserService
;
@Autowired
private
JuHeZhongPayJFenService
juHeZhongPayJFenService
;
public
Map
<
String
,
YoukaRate
>
getRateByUserLevel
(
YoukaRate
entity
)
{
public
Map
<
String
,
YoukaRate
>
getRateByUserLevel
(
YoukaRate
entity
)
{
Map
<
String
,
YoukaRate
>
map
=
dao
.
getRateByUserLevel
(
entity
);
Map
<
String
,
YoukaRate
>
map
=
dao
.
getRateByUserLevel
(
entity
);
return
map
;
return
map
;
...
@@ -41,6 +50,16 @@ public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> {
...
@@ -41,6 +50,16 @@ public class YoukaRateService extends CrudService<YoukaRateDao, YoukaRate> {
}
else
{
}
else
{
youkaRate
.
preUpdate
();
youkaRate
.
preUpdate
();
dao
.
update
(
youkaRate
);
dao
.
update
(
youkaRate
);
List
<
UserSubMchId
>
list
=
youkaUserService
.
getUserSubmchid
(
ComCode
.
PAYCHANNEL_HL2
,
youkaRate
.
getUserLevel
());
for
(
UserSubMchId
userSubMchId:
list
){
try
{
juHeZhongPayJFenService
.
merchantFeelJFen
(
userSubMchId
.
getSubmchid
(),
youkaRate
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
// }
// }
}
}
...
...
src/main/java/com/thinkgem/jeesite/modules/youka/service/YoukaUserService.java
View file @
9da0047a
...
@@ -19,6 +19,7 @@ import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
...
@@ -19,6 +19,7 @@ import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaCardDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaCardDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaUserDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaUserDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaUserDetailDao
;
import
com.thinkgem.jeesite.modules.youka.dao.YoukaUserDetailDao
;
import
com.thinkgem.jeesite.modules.youka.entity.UserSubMchId
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaCardEntity
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaCardEntity
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaUser
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaUser
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaUserDetail
;
import
com.thinkgem.jeesite.modules.youka.entity.YoukaUserDetail
;
...
@@ -50,6 +51,8 @@ public class YoukaUserService extends CrudService<YoukaUserDao, YoukaUser> {
...
@@ -50,6 +51,8 @@ public class YoukaUserService extends CrudService<YoukaUserDao, YoukaUser> {
private
SystemService
systemService
;
private
SystemService
systemService
;
@Override
@Override
public
YoukaUser
get
(
String
id
){
public
YoukaUser
get
(
String
id
){
YoukaUser
user
=
dao
.
get
(
id
);
YoukaUser
user
=
dao
.
get
(
id
);
...
@@ -188,6 +191,12 @@ public class YoukaUserService extends CrudService<YoukaUserDao, YoukaUser> {
...
@@ -188,6 +191,12 @@ public class YoukaUserService extends CrudService<YoukaUserDao, YoukaUser> {
return
dao
.
checkMobile
(
youkaUser
);
return
dao
.
checkMobile
(
youkaUser
);
}
}
// 根据通道获取Submchid
public
List
<
UserSubMchId
>
getUserSubmchid
(
String
paychannel
,
String
level
){
UserSubMchId
userSubMchId
=
new
UserSubMchId
();
userSubMchId
.
setPayChannel
(
paychannel
);
userSubMchId
.
setLevel
(
level
);
return
dao
.
getUserSubmchid
(
userSubMchId
);
}
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/Bean2Map.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
com.alibaba.fastjson.JSONObject
;
import
java.lang.reflect.Method
;
import
java.util.*
;
/**
* 将Map转换为Obj的工具类
*/
public
class
Bean2Map
{
public
static
void
Map2Entity
(
Map
map
,
Object
thisObj
)
{
Set
set
=
map
.
keySet
();
Iterator
iterator
=
set
.
iterator
();
while
(
iterator
.
hasNext
())
{
Object
obj
=
iterator
.
next
();
Object
val
=
map
.
get
(
obj
);
setObjMethod
(
obj
,
val
,
thisObj
);
}
}
public
static
Map
Entity2Map
(
Object
thisObj
)
{
Map
map
=
new
HashMap
();
Class
c
;
try
{
c
=
Class
.
forName
(
thisObj
.
getClass
().
getName
());
Method
[]
m
=
c
.
getMethods
();
for
(
int
i
=
0
;
i
<
m
.
length
;
i
++)
{
String
method
=
m
[
i
].
getName
();
if
(
method
.
startsWith
(
"get"
))
{
try
{
Object
value
=
m
[
i
].
invoke
(
thisObj
);
if
(
value
!=
null
)
{
String
key
=
method
.
substring
(
3
);
if
(
key
.
toLowerCase
().
equals
(
"class"
.
toLowerCase
()))
{
continue
;
}
key
=
key
.
substring
(
0
,
1
).
toLowerCase
()
+
key
.
substring
(
1
);
map
.
put
(
key
,
value
);
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"error:"
+
method
);
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
private
static
void
setObjMethod
(
Object
method
,
Object
value
,
Object
thisObj
)
{
Class
c
;
try
{
c
=
Class
.
forName
(
thisObj
.
getClass
().
getName
());
String
met
=
(
String
)
method
;
met
=
met
.
trim
();
if
(!
met
.
substring
(
0
,
1
).
equals
(
met
.
substring
(
0
,
1
).
toUpperCase
()))
{
met
=
met
.
substring
(
0
,
1
).
toUpperCase
()
+
met
.
substring
(
1
);
}
if
(!
String
.
valueOf
(
method
).
startsWith
(
"set"
))
{
met
=
"set"
+
met
;
}
Class
types
[]
=
new
Class
[
1
];
types
[
0
]
=
Class
.
forName
(
"java.lang.String"
);
Method
m
=
c
.
getMethod
(
met
,
types
);
m
.
invoke
(
thisObj
,
value
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
static
SortedMap
Entity2SortedMap
(
Object
thisObj
)
{
SortedMap
map
=
new
TreeMap
();
Class
c
;
try
{
c
=
Class
.
forName
(
thisObj
.
getClass
().
getName
());
Method
[]
m
=
c
.
getMethods
();
for
(
int
i
=
0
;
i
<
m
.
length
;
i
++)
{
String
method
=
m
[
i
].
getName
();
if
(
method
.
startsWith
(
"get"
))
{
try
{
Object
value
=
m
[
i
].
invoke
(
thisObj
);
if
(
value
!=
null
)
{
String
key
=
method
.
substring
(
3
);
if
(
key
.
toLowerCase
().
equals
(
"class"
.
toLowerCase
()))
{
continue
;
}
key
=
key
.
substring
(
0
,
1
).
toLowerCase
()
+
key
.
substring
(
1
);
map
.
put
(
key
,
value
);
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"error:"
+
method
);
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
public
static
SortedMap
JSONObject2SortedMap
(
JSONObject
thisObj
)
{
Set
<
String
>
set
=
thisObj
.
keySet
();
//得到所有title
Iterator
it
=
set
.
iterator
();
SortedMap
map
=
new
TreeMap
();
while
(
it
.
hasNext
())
{
String
key
=
it
.
next
().
toString
();
Object
vlaue
=
thisObj
.
get
(
key
);
map
.
put
(
key
,
vlaue
);
}
return
map
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/CharsetUtil.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
java.nio.charset.Charset
;
/**
* <p>Created with IntelliJ IDEA. </p>
* <p>User: Stony </p>
* <p>Date: 2016/5/17 </p>
* <p>Time: 10:21 </p>
* <p>Version: 1.0 </p>
*/
public
abstract
class
CharsetUtil
{
/**
* UTF-8: eight-bit UCS Transformation Format.
*/
public
static
final
Charset
UTF_8
=
Charset
.
forName
(
"UTF-8"
);
/**
* US-ASCII: seven-bit ASCII, the Basic Latin block of the Unicode character set (ISO646-US).
*/
public
static
final
Charset
US_ASCII
=
Charset
.
forName
(
"US-ASCII"
);
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/DateUtil.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
/**
* @author lsw
* @date 2016年1月3日
* @version 1.0
* @desc 日期工具类
*/
public
class
DateUtil
{
/**
* 将时间格式化成指定的字符串
*
* @param date
* @param ftm
* @return
*/
public
static
String
format2str
(
Date
date
,
String
ftm
)
{
return
new
SimpleDateFormat
(
ftm
).
format
(
date
);
}
/**
* 装字符串格式化成指定日期时间
* @param value
* @param fmt
* @return
*/
public
static
Date
string2Date
(
String
value
,
String
fmt
){
try
{
return
new
SimpleDateFormat
(
fmt
).
parse
(
value
);
}
catch
(
ParseException
e
)
{
}
return
new
Date
();
}
}
\ No newline at end of file
src/main/java/com/thinkgem/jeesite/modules/youka/utils/HttpUtil.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.HttpStatus
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.client.params.ClientPNames
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.DefaultHttpClient
;
import
org.apache.http.impl.client.DefaultHttpRequestRetryHandler
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingClientConnectionManager
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.apache.http.params.BasicHttpParams
;
import
org.apache.http.params.CoreConnectionPNames
;
import
org.apache.http.params.HttpParams
;
import
org.apache.http.util.EntityUtils
;
import
org.slf4j.LoggerFactory
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.security.cert.CertificateException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/***
* httpUtil
*
* @author
*/
public
class
HttpUtil
{
private
static
final
org
.
slf4j
.
Logger
log
=
LoggerFactory
.
getLogger
(
HttpUtil
.
class
);
private
static
PoolingHttpClientConnectionManager
cm
=
null
;
private
static
PoolingClientConnectionManager
conMgr
=
null
;
private
static
RequestConfig
defaultRequestConfig
=
null
;
static
{
HttpParams
params
=
new
BasicHttpParams
();
Integer
CONNECTION_TIMEOUT
=
2
*
1000
;
//设置请求超时2秒钟 根据业务调整
Integer
SO_TIMEOUT
=
2
*
1000
;
//设置等待数据超时时间2秒钟 根据业务调整
Long
CONN_MANAGER_TIMEOUT
=
500L
;
//该值就是连接不够用的时候等待超时时间,一定要设置,而且不能太大
params
.
setIntParameter
(
CoreConnectionPNames
.
CONNECTION_TIMEOUT
,
CONNECTION_TIMEOUT
);
params
.
setIntParameter
(
CoreConnectionPNames
.
SO_TIMEOUT
,
SO_TIMEOUT
);
params
.
setLongParameter
(
ClientPNames
.
CONN_MANAGER_TIMEOUT
,
CONN_MANAGER_TIMEOUT
);
params
.
setBooleanParameter
(
CoreConnectionPNames
.
STALE_CONNECTION_CHECK
,
true
);
conMgr
=
new
PoolingClientConnectionManager
();
conMgr
.
setMaxTotal
(
2000
);
conMgr
.
setDefaultMaxPerRoute
(
conMgr
.
getMaxTotal
());
try
{
//采用绕过验证的方式处理https请求
SSLContext
sslcontext
=
createIgnoreVerifySSL
();
Registry
<
ConnectionSocketFactory
>
socketFactoryRegistry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"https"
,
new
SSLConnectionSocketFactory
(
sslcontext
))
.
register
(
"http"
,
new
PlainConnectionSocketFactory
())
.
build
();
cm
=
new
PoolingHttpClientConnectionManager
(
socketFactoryRegistry
);
cm
.
setMaxTotal
(
2000
);
cm
.
setDefaultMaxPerRoute
(
20
);
defaultRequestConfig
=
RequestConfig
.
custom
()
.
setSocketTimeout
(
30000
)
.
setConnectTimeout
(
30000
)
.
setConnectionRequestTimeout
(
30000
)
.
setStaleConnectionCheckEnabled
(
true
)
.
build
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
static
String
get
(
String
url
,
String
param
)
{
DefaultHttpClient
httpClient
=
new
DefaultHttpClient
(
conMgr
);
// httpClient.setParams(params);
httpClient
.
setHttpRequestRetryHandler
(
new
DefaultHttpRequestRetryHandler
(
0
,
false
));
HttpResponse
httpResponse
=
null
;
// 发送get请求
try
{
// 用get方法发送http请求
HttpGet
get
=
new
HttpGet
(
url
+
URLEncoder
.
encode
(
param
,
"UTF-8"
));
get
.
setHeader
(
"User-Agent"
,
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/51.0.2704.79 Chrome/51.0.2704.79 Safari/537.36"
);
System
.
out
.
println
(
"执行get请求, uri: "
+
get
.
getURI
());
httpResponse
=
httpClient
.
execute
(
get
);
// response实体
HttpEntity
entity
=
httpResponse
.
getEntity
();
if
(
null
!=
entity
)
{
String
response
=
EntityUtils
.
toString
(
entity
);
int
statusCode
=
httpResponse
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
==
HttpStatus
.
SC_OK
)
{
// 成功
return
response
;
}
else
{
return
null
;
}
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"httpclient请求失败"
);
return
null
;
}
finally
{
if
(
httpResponse
!=
null
)
{
try
{
EntityUtils
.
consume
(
httpResponse
.
getEntity
());
//会自动释放连接
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
null
;
}
public
static
String
post
(
String
url
,
List
<
NameValuePair
>
nvps
)
throws
Exception
{
// HttpClient httpclient = new DefaultHttpClient(); 已经过期采用新的类
CloseableHttpClient
httpclient
=
HttpClients
.
createDefault
();
String
str
=
""
;
try
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
httpPost
.
setEntity
(
new
UrlEncodedFormEntity
(
nvps
,
"utf-8"
));
CloseableHttpResponse
response
=
httpclient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
);
log
.
info
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
info
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
httpclient
.
close
();
}
}
public
static
String
post
(
String
url
,
Map
<
String
,
Object
>
params
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
createDefault
();
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
//设置参数
List
<
NameValuePair
>
list
=
new
ArrayList
<
NameValuePair
>();
for
(
String
key
:
params
.
keySet
()){
list
.
add
(
new
BasicNameValuePair
(
key
,
""
+
params
.
get
(
key
)));
}
if
(
list
.
size
()
>
0
){
UrlEncodedFormEntity
entity
=
new
UrlEncodedFormEntity
(
list
);
httpPost
.
setEntity
(
new
UrlEncodedFormEntity
(
list
,
"utf-8"
));
}
response
=
httpclient
.
execute
(
httpPost
);
str
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
return
str
;
}
finally
{
if
(
response
!=
null
){
response
.
close
();
}
httpclient
.
close
();
}
}
public
static
String
post
(
String
url
,
String
json
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
StringEntity
postingString
=
new
StringEntity
(
json
,
"UTF-8"
);
// json传递
httpPost
.
setEntity
(
postingString
);
httpPost
.
setHeader
(
"Content-type"
,
"application/json"
);
response
=
httpclient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
,
"UTF-8"
);
log
.
debug
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
debug
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
public
static
String
postXml
(
String
url
,
String
xml
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
StringEntity
postingString
=
new
StringEntity
(
xml
,
"UTF-8"
);
// json传递
httpPost
.
setEntity
(
postingString
);
httpPost
.
setHeader
(
"Content-type"
,
"application/xml"
);
response
=
httpclient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
,
"UTF-8"
);
log
.
debug
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
debug
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
public
static
String
postRaw
(
String
url
,
String
json
)
throws
Exception
{
// HttpClient httpclient = new DefaultHttpClient(); 已经过期采用新的类
CloseableHttpClient
httpclient
=
HttpClients
.
createDefault
();
String
str
=
""
;
try
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
StringEntity
postingString
=
new
StringEntity
(
json
);
// json传递
httpPost
.
setEntity
(
postingString
);
httpPost
.
setHeader
(
"Content-type"
,
"application/json"
);
CloseableHttpResponse
response
=
httpclient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
);
log
.
info
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
info
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
httpclient
.
close
();
}
}
public
static
String
get
(
String
url
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
createDefault
();
try
{
HttpGet
httpget
=
new
HttpGet
(
url
);
// httpget.addHeader(new BasicHeader("", ""));
// httpget.addHeader("", "");
String
str
=
""
;
CloseableHttpResponse
response
=
httpclient
.
execute
(
httpget
);
try
{
// 获取状态行
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
);
log
.
info
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
info
(
"httpclient调用结果{}"
,
str
);
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
httpclient
.
close
();
}
}
public
static
void
main
(
String
[]
args
)
{
List
<
NameValuePair
>
nvps
=
new
ArrayList
<
NameValuePair
>();
try
{
get
(
"http://localhost:8080/website/index"
);
}
catch
(
Exception
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
private
static
SSLContext
createIgnoreVerifySSL
()
throws
Exception
{
SSLContext
sc
=
SSLContext
.
getInstance
(
"SSLv3"
);
// 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法
X509TrustManager
trustManager
=
new
X509TrustManager
()
{
@Override
public
void
checkClientTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
paramArrayOfX509Certificate
,
String
paramString
)
throws
CertificateException
{
}
@Override
public
void
checkServerTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
paramArrayOfX509Certificate
,
String
paramString
)
throws
CertificateException
{
}
@Override
public
java
.
security
.
cert
.
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
};
sc
.
init
(
null
,
new
TrustManager
[]{
trustManager
},
null
);
return
sc
;
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/JFenHttpUtil.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpStatus
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.apache.http.util.EntityUtils
;
import
org.slf4j.LoggerFactory
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
java.io.IOException
;
import
java.net.URLEncoder
;
import
java.security.cert.CertificateException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
static
java
.
lang
.
System
.
currentTimeMillis
;
/***
* httpUtil
*
* @author
*/
public
class
JFenHttpUtil
{
private
static
final
org
.
slf4j
.
Logger
log
=
LoggerFactory
.
getLogger
(
HttpUtil
.
class
);
private
static
PoolingHttpClientConnectionManager
cm
=
null
;
private
static
RequestConfig
defaultRequestConfig
=
null
;
static
{
try
{
//采用绕过验证的方式处理https请求
SSLContext
sslcontext
=
createIgnoreVerifySSL
();
Registry
<
ConnectionSocketFactory
>
socketFactoryRegistry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"https"
,
new
SSLConnectionSocketFactory
(
sslcontext
))
.
register
(
"http"
,
new
PlainConnectionSocketFactory
())
.
build
();
cm
=
new
PoolingHttpClientConnectionManager
(
socketFactoryRegistry
);
cm
.
setMaxTotal
(
2000
);
cm
.
setDefaultMaxPerRoute
(
20
);
defaultRequestConfig
=
RequestConfig
.
custom
()
.
setSocketTimeout
(
30000
)
.
setConnectTimeout
(
30000
)
.
setConnectionRequestTimeout
(
30000
)
.
setStaleConnectionCheckEnabled
(
true
)
.
build
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
static
SSLContext
createIgnoreVerifySSL
()
throws
Exception
{
SSLContext
sc
=
SSLContext
.
getInstance
(
"SSLv3"
);
// 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法
X509TrustManager
trustManager
=
new
X509TrustManager
()
{
@Override
public
void
checkClientTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
paramArrayOfX509Certificate
,
String
paramString
)
throws
CertificateException
{
}
@Override
public
void
checkServerTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
paramArrayOfX509Certificate
,
String
paramString
)
throws
CertificateException
{
}
@Override
public
java
.
security
.
cert
.
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
};
sc
.
init
(
null
,
new
TrustManager
[]{
trustManager
},
null
);
return
sc
;
}
public
static
String
get
(
String
url
,
String
param
)
throws
IOException
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
setDefaultRequestConfig
(
defaultRequestConfig
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
// 发送get请求
try
{
// 用get方法发送http请求
HttpGet
get
=
new
HttpGet
(
url
+
URLEncoder
.
encode
(
param
,
"UTF-8"
));
get
.
setHeader
(
"User-Agent"
,
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/51.0.2704.79 Chrome/51.0.2704.79 Safari/537.36"
);
System
.
out
.
println
(
"执行get请求, uri: "
+
get
.
getURI
());
response
=
httpclient
.
execute
(
get
);
// response实体
HttpEntity
entity
=
response
.
getEntity
();
if
(
null
!=
entity
)
{
String
str
=
EntityUtils
.
toString
(
entity
);
int
statusCode
=
response
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
==
HttpStatus
.
SC_OK
)
{
// 成功
return
str
;
}
else
{
return
null
;
}
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"httpclient请求失败"
);
return
null
;
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
return
null
;
}
public
static
String
post
(
String
url
,
List
<
NameValuePair
>
nvps
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
setDefaultRequestConfig
(
defaultRequestConfig
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
httpPost
.
setEntity
(
new
UrlEncodedFormEntity
(
nvps
,
"utf-8"
));
response
=
httpclient
.
execute
(
httpPost
);
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
);
log
.
debug
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
debug
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
public
static
String
post
(
String
url
,
Map
<
String
,
Object
>
params
)
throws
Exception
{
Long
time
=
System
.
currentTimeMillis
();
// CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(cm).setDefaultRequestConfig(defaultRequestConfig).build();
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
CloseableHttpResponse
response
=
null
;
HttpPost
httpPost
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
//设置参数
List
<
NameValuePair
>
list
=
new
ArrayList
<
NameValuePair
>();
for
(
String
key
:
params
.
keySet
())
{
list
.
add
(
new
BasicNameValuePair
(
key
,
""
+
params
.
get
(
key
)));
}
if
(
list
.
size
()
>
0
)
{
UrlEncodedFormEntity
entity
=
new
UrlEncodedFormEntity
(
list
);
httpPost
.
setEntity
(
new
UrlEncodedFormEntity
(
list
,
"UTF-8"
));
}
response
=
httpclient
.
execute
(
httpPost
);
str
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
log
.
info
(
"请求耗时:{}ms"
,
(
System
.
currentTimeMillis
()
-
time
));
return
str
;
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
public
static
String
postRaw
(
String
url
,
String
json
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
StringEntity
postingString
=
new
StringEntity
(
json
,
"UTF-8"
);
// json传递
httpPost
.
setEntity
(
postingString
);
httpPost
.
setHeader
(
"Content-type"
,
"application/json"
);
response
=
httpclient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
,
"UTF-8"
);
log
.
debug
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
debug
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
public
static
String
get
(
String
url
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
setDefaultRequestConfig
(
defaultRequestConfig
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
HttpGet
httpget
=
null
;
try
{
httpget
=
new
HttpGet
(
url
);
String
str
=
""
;
response
=
httpclient
.
execute
(
httpget
);
// 获取状态行
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
);
log
.
debug
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
debug
(
"httpclient调用结果{}"
,
str
);
return
str
;
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpget
!=
null
)
{
httpget
.
releaseConnection
();
}
}
}
public
static
void
main
(
String
[]
args
)
{
List
<
NameValuePair
>
nvps
=
new
ArrayList
<
NameValuePair
>();
try
{
for
(
int
i
=
0
;
i
<
200
;
i
++)
{
Long
time
=
currentTimeMillis
();
get
(
"https://www.baidu.com/website/index"
);
System
.
out
.
println
(
"耗时:"
+
((
currentTimeMillis
()
-
time
)
/
1000
)
+
"s"
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
static
String
formSubmit
(
String
url
,
Map
<
String
,
Object
>
params
)
throws
IOException
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
setDefaultRequestConfig
(
defaultRequestConfig
).
build
();
CloseableHttpResponse
response
=
null
;
HttpPost
httpPost
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
httpPost
.
setHeader
(
"Accept"
,
"Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
);
httpPost
.
setHeader
(
"Accept-Charset"
,
"GB2312,utf-8;q=0.7,*;q=0.7"
);
httpPost
.
setHeader
(
"Accept-Encoding"
,
"gzip, deflate"
);
httpPost
.
setHeader
(
"Accept-Language"
,
"zh-cn,zh;q=0.5"
);
httpPost
.
setHeader
(
"Connection"
,
"keep-alive"
);
httpPost
.
setHeader
(
"Cookie"
,
"__utma=226521935.73826752.1323672782.1325068020.1328770420.6;"
);
httpPost
.
setHeader
(
"Host"
,
"localhost"
);
httpPost
.
setHeader
(
"refer"
,
""
);
httpPost
.
setHeader
(
"User-Agent"
,
"Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"
);
httpPost
.
setHeader
(
"Content-type"
,
"application/x-www-form-urlencoded"
);
//设置参数
List
<
NameValuePair
>
list
=
new
ArrayList
<
NameValuePair
>();
for
(
String
key
:
params
.
keySet
())
{
list
.
add
(
new
BasicNameValuePair
(
key
,
""
+
params
.
get
(
key
)));
}
if
(
list
.
size
()
>
0
)
{
UrlEncodedFormEntity
entity
=
new
UrlEncodedFormEntity
(
list
);
httpPost
.
setEntity
(
new
UrlEncodedFormEntity
(
list
,
"utf-8"
));
}
response
=
httpclient
.
execute
(
httpPost
);
str
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
return
str
;
}
public
static
String
sendData
(
String
url
,
String
xml
)
throws
Exception
{
Long
time
=
System
.
currentTimeMillis
();
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
setDefaultRequestConfig
(
defaultRequestConfig
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
StringEntity
postingString
=
new
StringEntity
(
xml
,
"UTF-8"
);
// json传递
httpPost
.
setEntity
(
postingString
);
response
=
httpclient
.
execute
(
httpPost
);
try
{
str
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
log
.
debug
(
"请求耗时:{}ms"
,
(
System
.
currentTimeMillis
()
-
time
));
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
public
static
String
post
(
String
url
,
String
json
)
throws
Exception
{
CloseableHttpClient
httpclient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
HttpPost
httpPost
=
null
;
CloseableHttpResponse
response
=
null
;
String
str
=
""
;
try
{
httpPost
=
new
HttpPost
(
url
);
StringEntity
postingString
=
new
StringEntity
(
json
,
"UTF-8"
);
// json传递
httpPost
.
setEntity
(
postingString
);
httpPost
.
setHeader
(
"Content-type"
,
"application/json"
);
response
=
httpclient
.
execute
(
httpPost
);
try
{
HttpEntity
entity
=
response
.
getEntity
();
str
=
EntityUtils
.
toString
(
entity
,
"UTF-8"
);
log
.
debug
(
"httpclient调用状态:"
+
response
.
getStatusLine
());
log
.
debug
(
"httpclient调用结果{}"
,
str
);
// return EntityUtils.toString(response.getEntity());
return
str
;
}
finally
{
response
.
close
();
}
}
finally
{
if
(
response
!=
null
)
{
response
.
close
();
}
if
(
httpPost
!=
null
)
{
httpPost
.
releaseConnection
();
}
}
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/MD5Utils.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
java.security.MessageDigest
;
public
abstract
class
MD5Utils
{
private
static
byte
[]
getBytes
(
String
text
)
{
return
text
.
getBytes
(
CharsetUtil
.
UTF_8
);
}
/**
* 返回MD5 加密字符串
*
* @param text
* @return
* @throws Exception
*/
public
static
String
md5
(
String
text
)
throws
Exception
{
return
md5
(
getBytes
(
text
));
}
public
static
byte
[]
md5ToByte
(
String
text
)
throws
Exception
{
return
md5ToByte
(
getBytes
(
text
));
}
public
static
byte
[]
md5ToByte
(
byte
[]
bytes
)
throws
Exception
{
MessageDigest
messageDigest
=
MessageDigest
.
getInstance
(
"MD5"
);
messageDigest
.
update
(
bytes
);
return
messageDigest
.
digest
();
}
/**
* 返回MD5 加密字符串
*
* @param bytes
* @return
* @throws Exception
*/
public
static
String
md5
(
byte
[]
bytes
)
throws
Exception
{
byte
[]
use
=
md5ToByte
(
bytes
);
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
use
.
length
;
i
++)
{
if
((
use
[
i
]
&
0xff
)
<
0x10
)
{
sb
.
append
(
"0"
);
}
sb
.
append
(
Long
.
toString
(
use
[
i
]
&
0xff
,
16
));
}
return
sb
.
toString
();
}
/**
* MD5方法
*
* @param text
* @return 大写
* @throws Exception
*/
public
static
String
md5UpperCase
(
String
text
)
throws
Exception
{
byte
[]
bytes
=
getBytes
(
text
);
return
md5
(
bytes
).
toUpperCase
();
}
/**
* MD5方法
*
* @param text 明文
* @param salt 盐
* @return 密文
* @throws Exception
*/
public
static
String
md5UpperCase
(
String
text
,
String
salt
)
throws
Exception
{
byte
[]
bytes
=
getBytes
((
text
+
salt
));
return
md5
(
bytes
).
toUpperCase
();
}
/**
* MD5方法
*
* @param text
* @return 小写
* @throws Exception
*/
public
static
String
md5LowerCase
(
String
text
)
throws
Exception
{
byte
[]
bytes
=
getBytes
(
text
);
return
md5
(
bytes
).
toLowerCase
();
}
/**
* MD5方法
*
* @param text 明文
* @param salt 盐
* @return 密文
* @throws Exception
*/
public
static
String
md5LowerCase
(
String
text
,
String
salt
)
throws
Exception
{
byte
[]
bytes
=
getBytes
((
text
+
salt
));
return
md5
(
bytes
).
toLowerCase
();
}
/**
* MD5验证方法
*
* @param text 明文
* @param salt 盐
* @param md5 密文
* @return true/false
* @throws Exception
*/
public
static
boolean
verify
(
String
text
,
String
salt
,
String
md5
)
throws
Exception
{
String
md5Text
=
md5UpperCase
(
text
,
salt
);
if
(
md5Text
.
equalsIgnoreCase
(
md5
))
{
return
true
;
}
else
{
return
false
;
}
}
/**
* MD5验证
*
* @param text
* @param md5
* @return
* @throws Exception
*/
public
static
boolean
verify
(
String
text
,
String
md5
)
throws
Exception
{
String
md5Text
=
md5UpperCase
(
text
);
if
(
md5Text
.
equalsIgnoreCase
(
md5
))
{
return
true
;
}
else
{
return
false
;
}
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/MakeOrderNum.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
java.util.Date
;
/**
* Created by lishi on 2017/11/1.
*/
public
class
MakeOrderNum
{
/**
* 锁对象,可以为任意对象
*/
private
static
Object
lockObj
=
"lockerOrder"
;
/**
* 订单号生成计数器
*/
private
static
long
orderNumCount
=
0L
;
/**
* 每毫秒生成订单号数量最大值
*/
private
static
int
maxPerMSECSize
=
1000
;
/**
* 订单号生成
*/
public
static
String
makeOrderNum
()
{
String
finOrderNum
=
""
;
try
{
// 最终生成的订单号
synchronized
(
lockObj
)
{
// 取系统当前时间作为订单号变量前半部分,精确到毫秒
long
nowLong
=
Long
.
parseLong
(
DateUtil
.
format2str
(
new
Date
(),
"yyyyMMddHHmmssSSS"
));
// 计数器到最大值归零,可扩展更大,目前1毫秒处理峰值1000个,1秒100万
if
(
orderNumCount
>=
maxPerMSECSize
)
{
orderNumCount
=
0L
;
}
//组装订单号
String
countStr
=
maxPerMSECSize
+
orderNumCount
+
""
;
finOrderNum
=
nowLong
+
countStr
.
substring
(
1
);
orderNumCount
++;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
finOrderNum
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
makeOrderNum
());
System
.
out
.
println
(
makeOrderNum
());
}
}
src/main/java/com/thinkgem/jeesite/modules/youka/utils/SignUtils.java
0 → 100644
View file @
9da0047a
package
com
.
thinkgem
.
jeesite
.
modules
.
youka
.
utils
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.TreeSet
;
/**
* 签名工具类
*/
public
abstract
class
SignUtils
{
public
static
String
sign
(
String
signBefore
,
String
merchantSescrt
)
throws
Exception
{
return
MD5Utils
.
md5LowerCase
(
signBefore
,
merchantSescrt
);
}
public
static
String
signBefore
(
Map
<
String
,
Object
>
body
)
{
StringBuffer
sign
=
new
StringBuffer
();
Set
<
String
>
keySet
=
new
TreeSet
<
String
>();
for
(
String
key
:
body
.
keySet
())
{
keySet
.
add
(
key
);
}
for
(
String
key
:
keySet
)
{
if
(!
"sign"
.
equals
(
key
)
&&
body
.
get
(
key
)
!=
null
)
{
sign
.
append
(
"&"
+
key
+
"="
+
body
.
get
(
key
));
}
}
if
(
sign
!=
null
&&
!(
""
.
equals
(
sign
)))
{
sign
.
delete
(
0
,
1
);
}
return
sign
.
toString
();
}
}
src/main/resources/mappings/modules/youka/YoukaUserDao.xml
View file @
9da0047a
...
@@ -241,4 +241,16 @@
...
@@ -241,4 +241,16 @@
<!--order by cp.sort, cp.id, c.sort, c.id-->
<!--order by cp.sort, cp.id, c.sort, c.id-->
<!--</where> -->
<!--</where> -->
<!--</select>-->
<!--</select>-->
<select
id=
"getUserSubmchid"
resultType=
"com.thinkgem.jeesite.modules.youka.entity.UserSubMchId"
>
SELECT
yus.user_code,
yus.pay_channel,
yus.submchid
FROM youka_user_submchid yus
LEFT JOIN youka_users yu ON yu.code = yus.user_code
WHERE pay_channel = #{payChannel}
AND yu.level = #{level}
</select>
</mapper>
</mapper>
\ No newline at end of file
src/main/resources/youka.properties
View file @
9da0047a
...
@@ -133,4 +133,10 @@ sys.pre.url=http://localhost:8080/
...
@@ -133,4 +133,10 @@ sys.pre.url=http://localhost:8080/
image.save.url
=
D:/youka/images/
image.save.url
=
D:/youka/images/
#image.save.url=/tomcat/webapps/ROOT/youka/image/
#image.save.url=/tomcat/webapps/ROOT/youka/image/
#图片返回路径
#图片返回路径
image.return.url
=
youka/image/
image.return.url
=
youka/image/
\ No newline at end of file
## jfen 对应通道C-HL2
pay.jfen.merchant_id
=
100532502198424
pay.jfen.merchant.key
=
260a7539-6a2b-410d-aeec-9897ccee92a1
pay.jfen.merchant.secret
=
9ad18861-24b3-4904-a2c3-c4401f6f60f3
\ No newline at end of file
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