Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Jeepay
Commits
2743de4b
Commit
2743de4b
authored
Aug 23, 2022
by
yurong
Browse files
jeepay对接计全付+计全付配置SQL+本地pls包+微信和支付宝小程序的OrderRQ和OrderRS
parent
54cb88c6
Changes
32
Hide whitespace changes
Inline
Side-by-side
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/jeepluspay/payway/WxBar.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.channel.jeepluspay.payway
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jeequan.jeepay.Jeepay
;
import
com.jeequan.jeepay.JeepayClient
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.exception.BizException
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams
;
import
com.jeequan.jeepay.exception.JeepayException
;
import
com.jeequan.jeepay.model.PayOrderCreateReqModel
;
import
com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService
;
import
com.jeequan.jeepay.pay.model.MchAppConfigContext
;
import
com.jeequan.jeepay.pay.rqrs.AbstractRS
;
import
com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.AliBarOrderRS
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxBarOrderRQ
;
import
com.jeequan.jeepay.pay.util.ApiResBuilder
;
import
com.jeequan.jeepay.request.PayOrderCreateRequest
;
import
com.jeequan.jeepay.response.PayOrderCreateResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
/*
* 计全付 微信 bar
*
* @author yr
* @site https://www.jeequan.com
* @date 2022/8/16 18:37
*/
@Service
(
"jeepluspayPaymentByWxBarService"
)
//Service Name需保持全局唯一性
public
class
WxBar
extends
JeepluspayPaymentService
{
@Override
public
String
preCheck
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
)
{
WxBarOrderRQ
bizRQ
=
(
WxBarOrderRQ
)
rq
;
if
(
StringUtils
.
isEmpty
(
bizRQ
.
getAuthCode
()))
{
throw
new
BizException
(
"用户支付条码[authCode]不可为空"
);
}
return
null
;
}
@Override
public
AbstractRS
pay
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
,
MchAppConfigContext
mchAppConfigContext
)
throws
Exception
{
WxBarOrderRQ
bizRQ
=
(
WxBarOrderRQ
)
rq
;
JeepluspayNormalMchParams
normalMchParams
=
(
JeepluspayNormalMchParams
)
configContextQueryService
.
queryNormalMchParams
(
mchAppConfigContext
.
getMchNo
(),
mchAppConfigContext
.
getAppId
(),
CS
.
IF_CODE
.
JEEPLUSPAY
);
// 构建请求数据
PayOrderCreateRequest
request
=
new
PayOrderCreateRequest
();
PayOrderCreateReqModel
model
=
new
PayOrderCreateReqModel
();
model
.
setMchNo
(
normalMchParams
.
getMerchantNo
());
// 商户号
model
.
setAppId
(
normalMchParams
.
getAppId
());
// 应用ID
model
.
setMchOrderNo
(
payOrder
.
getPayOrderId
());
// 商户订单号
model
.
setWayCode
(
JeepluspayConfig
.
WX_BAR
);
// 支付方式
model
.
setAmount
(
payOrder
.
getAmount
());
// 金额,单位分
model
.
setCurrency
(
payOrder
.
getCurrency
());
// 币种,目前只支持cny
model
.
setClientIp
(
payOrder
.
getClientIp
());
// 发起支付请求客户端的IP地址
model
.
setSubject
(
payOrder
.
getSubject
());
// 商品标题
model
.
setBody
(
payOrder
.
getBody
());
// 商品描述
model
.
setNotifyUrl
(
getNotifyUrl
());
// 异步通知地址
JSONObject
channelExtra
=
new
JSONObject
();
channelExtra
.
put
(
"authCode"
,
bizRQ
.
getAuthCode
());
model
.
setChannelExtra
(
channelExtra
.
toString
());
// 用户付款码值
request
.
setBizModel
(
model
);
// 构造函数响应数据
AliBarOrderRS
res
=
ApiResBuilder
.
buildSuccess
(
AliBarOrderRS
.
class
);
ChannelRetMsg
channelRetMsg
=
new
ChannelRetMsg
();
res
.
setChannelRetMsg
(
channelRetMsg
);
try
{
// 发起统一下单
PayOrderCreateResponse
response
=
new
PayOrderCreateResponse
();
boolean
checkSign
=
false
;
boolean
isSuccess
=
false
;
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
DEFAULT_SIGN_TYPE
)
||
StringUtils
.
isEmpty
(
normalMchParams
.
getSignType
()))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getAppSecret
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
execute
(
request
);
checkSign
=
response
.
checkSign
(
normalMchParams
.
getAppSecret
());
isSuccess
=
response
.
isSuccess
(
normalMchParams
.
getAppSecret
());
}
else
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
SIGN_TYPE_RSA2
))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getRsa2AppPrivateKey
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
executeByRSA2
(
request
);
checkSign
=
response
.
checkSignByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
isSuccess
=
response
.
isSuccessByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
}
if
(
checkSign
)
{
channelRetMsg
.
setChannelOrderId
(
response
.
get
().
getPayOrderId
());
if
(
isSuccess
)
{
// 下单成功
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_SUCCESS
);
}
else
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
channelRetMsg
.
setChannelErrCode
(
response
.
get
().
getErrCode
());
channelRetMsg
.
setChannelErrMsg
(
response
.
get
().
getErrMsg
());
}
}
}
catch
(
JeepayException
e
)
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
}
return
res
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/jeepluspay/payway/WxH5.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.channel.jeepluspay.payway
;
import
com.jeequan.jeepay.Jeepay
;
import
com.jeequan.jeepay.JeepayClient
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams
;
import
com.jeequan.jeepay.exception.JeepayException
;
import
com.jeequan.jeepay.model.PayOrderCreateReqModel
;
import
com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService
;
import
com.jeequan.jeepay.pay.model.MchAppConfigContext
;
import
com.jeequan.jeepay.pay.rqrs.AbstractRS
;
import
com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxH5OrderRS
;
import
com.jeequan.jeepay.pay.util.ApiResBuilder
;
import
com.jeequan.jeepay.request.PayOrderCreateRequest
;
import
com.jeequan.jeepay.response.PayOrderCreateResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
/*
* 计全付 微信 H5 支付
*
* @author yr
* @site https://www.jeequan.com
* @date 2022/8/17 15:37
*/
@Service
(
"jeepluspayPaymentByWxH5Service"
)
//Service Name需保持全局唯一性
public
class
WxH5
extends
JeepluspayPaymentService
{
@Override
public
String
preCheck
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
)
{
return
null
;
}
@Override
public
AbstractRS
pay
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
,
MchAppConfigContext
mchAppConfigContext
)
{
JeepluspayNormalMchParams
normalMchParams
=
(
JeepluspayNormalMchParams
)
configContextQueryService
.
queryNormalMchParams
(
mchAppConfigContext
.
getMchNo
(),
mchAppConfigContext
.
getAppId
(),
CS
.
IF_CODE
.
JEEPLUSPAY
);
// 构建请求数据
PayOrderCreateRequest
request
=
new
PayOrderCreateRequest
();
PayOrderCreateReqModel
model
=
new
PayOrderCreateReqModel
();
model
.
setMchNo
(
normalMchParams
.
getMerchantNo
());
// 商户号
model
.
setAppId
(
normalMchParams
.
getAppId
());
// 应用ID
model
.
setMchOrderNo
(
payOrder
.
getPayOrderId
());
// 商户订单号
model
.
setWayCode
(
JeepluspayConfig
.
WX_H5
);
// 支付方式
model
.
setAmount
(
payOrder
.
getAmount
());
// 金额,单位分
model
.
setCurrency
(
payOrder
.
getCurrency
());
// 币种,目前只支持cny
model
.
setClientIp
(
payOrder
.
getClientIp
());
// 发起支付请求客户端的IP地址
model
.
setSubject
(
payOrder
.
getSubject
());
// 商品标题
model
.
setBody
(
payOrder
.
getBody
());
// 商品描述
model
.
setNotifyUrl
(
getNotifyUrl
());
// 异步通知地址
request
.
setBizModel
(
model
);
// 构造函数响应数据
WxH5OrderRS
res
=
ApiResBuilder
.
buildSuccess
(
WxH5OrderRS
.
class
);
ChannelRetMsg
channelRetMsg
=
new
ChannelRetMsg
();
res
.
setChannelRetMsg
(
channelRetMsg
);
try
{
// 发起统一下单
PayOrderCreateResponse
response
=
new
PayOrderCreateResponse
();
boolean
checkSign
=
false
;
boolean
isSuccess
=
false
;
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
DEFAULT_SIGN_TYPE
)
||
StringUtils
.
isEmpty
(
normalMchParams
.
getSignType
()))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getAppSecret
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
execute
(
request
);
checkSign
=
response
.
checkSign
(
normalMchParams
.
getAppSecret
());
isSuccess
=
response
.
isSuccess
(
normalMchParams
.
getAppSecret
());
}
else
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
SIGN_TYPE_RSA2
))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getRsa2AppPrivateKey
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
executeByRSA2
(
request
);
checkSign
=
response
.
checkSignByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
isSuccess
=
response
.
isSuccessByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
}
if
(
checkSign
)
{
channelRetMsg
.
setChannelOrderId
(
response
.
get
().
getPayOrderId
());
if
(
isSuccess
)
{
// 下单成功
String
payUrl
=
response
.
getData
().
getString
(
"payData"
);
String
payDataType
=
response
.
getData
().
getString
(
"payDataType"
);
if
(
CS
.
PAY_DATA_TYPE
.
FORM
.
equals
(
payDataType
))
{
//表单方式
res
.
setFormContent
(
payUrl
);
}
else
if
(
CS
.
PAY_DATA_TYPE
.
CODE_IMG_URL
.
equals
(
payDataType
))
{
//二维码图片地址
res
.
setCodeImgUrl
(
payUrl
);
}
else
{
// 默认都为 payUrl方式
res
.
setPayUrl
(
payUrl
);
}
// 支付中
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
WAITING
);
}
else
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
channelRetMsg
.
setChannelErrCode
(
response
.
get
().
getErrCode
());
channelRetMsg
.
setChannelErrMsg
(
response
.
get
().
getErrMsg
());
}
}
}
catch
(
JeepayException
e
)
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
}
return
res
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/jeepluspay/payway/WxJsapi.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.channel.jeepluspay.payway
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jeequan.jeepay.Jeepay
;
import
com.jeequan.jeepay.JeepayClient
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.exception.BizException
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams
;
import
com.jeequan.jeepay.exception.JeepayException
;
import
com.jeequan.jeepay.model.PayOrderCreateReqModel
;
import
com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService
;
import
com.jeequan.jeepay.pay.model.MchAppConfigContext
;
import
com.jeequan.jeepay.pay.rqrs.AbstractRS
;
import
com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxJsapiOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxJsapiOrderRS
;
import
com.jeequan.jeepay.pay.util.ApiResBuilder
;
import
com.jeequan.jeepay.request.PayOrderCreateRequest
;
import
com.jeequan.jeepay.response.PayOrderCreateResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
/*
* 计全付 微信 jsapi支付
*
* @author yr
* @site https://www.jeequan.com
* @date 2022/8/17 14:24
*/
@Service
(
"jeepluspayPaymentByWxJsapiService"
)
//Service Name需保持全局唯一性
@Slf4j
public
class
WxJsapi
extends
JeepluspayPaymentService
{
@Override
public
String
preCheck
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
)
{
WxJsapiOrderRQ
bizRQ
=
(
WxJsapiOrderRQ
)
rq
;
if
(
StringUtils
.
isEmpty
(
bizRQ
.
getOpenid
()))
{
throw
new
BizException
(
"[openid]不可为空"
);
}
return
null
;
}
@Override
public
AbstractRS
pay
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
,
MchAppConfigContext
mchAppConfigContext
)
throws
Exception
{
WxJsapiOrderRQ
bizRQ
=
(
WxJsapiOrderRQ
)
rq
;
JeepluspayNormalMchParams
normalMchParams
=
(
JeepluspayNormalMchParams
)
configContextQueryService
.
queryNormalMchParams
(
mchAppConfigContext
.
getMchNo
(),
mchAppConfigContext
.
getAppId
(),
CS
.
IF_CODE
.
JEEPLUSPAY
);
// 构建请求数据
PayOrderCreateRequest
request
=
new
PayOrderCreateRequest
();
PayOrderCreateReqModel
model
=
new
PayOrderCreateReqModel
();
model
.
setMchNo
(
normalMchParams
.
getMerchantNo
());
// 商户号
model
.
setAppId
(
normalMchParams
.
getAppId
());
// 应用ID
model
.
setMchOrderNo
(
payOrder
.
getPayOrderId
());
// 商户订单号
model
.
setWayCode
(
JeepluspayConfig
.
WX_JSAPI
);
// 支付方式
model
.
setAmount
(
payOrder
.
getAmount
());
// 金额,单位分
model
.
setCurrency
(
payOrder
.
getCurrency
());
// 币种,目前只支持cny
model
.
setClientIp
(
payOrder
.
getClientIp
());
// 发起支付请求客户端的IP地址
model
.
setSubject
(
payOrder
.
getSubject
());
// 商品标题
model
.
setBody
(
payOrder
.
getBody
());
// 商品描述
model
.
setNotifyUrl
(
getNotifyUrl
());
// 异步通知地址
JSONObject
channelExtra
=
new
JSONObject
();
channelExtra
.
put
(
"openid"
,
bizRQ
.
getOpenid
());
model
.
setChannelExtra
(
channelExtra
.
toString
());
// 微信openId
request
.
setBizModel
(
model
);
// 构造函数响应数据
WxJsapiOrderRS
res
=
ApiResBuilder
.
buildSuccess
(
WxJsapiOrderRS
.
class
);
ChannelRetMsg
channelRetMsg
=
new
ChannelRetMsg
();
res
.
setChannelRetMsg
(
channelRetMsg
);
try
{
// 发起统一下单
PayOrderCreateResponse
response
=
new
PayOrderCreateResponse
();
boolean
checkSign
=
false
;
boolean
isSuccess
=
false
;
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
DEFAULT_SIGN_TYPE
)
||
StringUtils
.
isEmpty
(
normalMchParams
.
getSignType
()))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getAppSecret
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
execute
(
request
);
checkSign
=
response
.
checkSign
(
normalMchParams
.
getAppSecret
());
isSuccess
=
response
.
isSuccess
(
normalMchParams
.
getAppSecret
());
}
else
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
SIGN_TYPE_RSA2
))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getRsa2AppPrivateKey
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
executeByRSA2
(
request
);
checkSign
=
response
.
checkSignByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
isSuccess
=
response
.
isSuccessByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
}
if
(
checkSign
)
{
channelRetMsg
.
setChannelOrderId
(
response
.
get
().
getPayOrderId
());
if
(
isSuccess
)
{
// 下单成功
JSONObject
payData
=
response
.
getData
().
getJSONObject
(
"payData"
);
res
.
setPayInfo
(
payData
.
toJSONString
());
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
WAITING
);
}
else
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
channelRetMsg
.
setChannelErrCode
(
response
.
get
().
getErrCode
());
channelRetMsg
.
setChannelErrMsg
(
response
.
get
().
getErrMsg
());
}
}
}
catch
(
JeepayException
e
)
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
}
return
res
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/jeepluspay/payway/WxLite.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.channel.jeepluspay.payway
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jeequan.jeepay.Jeepay
;
import
com.jeequan.jeepay.JeepayClient
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.exception.BizException
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams
;
import
com.jeequan.jeepay.exception.JeepayException
;
import
com.jeequan.jeepay.model.PayOrderCreateReqModel
;
import
com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService
;
import
com.jeequan.jeepay.pay.model.MchAppConfigContext
;
import
com.jeequan.jeepay.pay.rqrs.AbstractRS
;
import
com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxLiteOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxLiteOrderRS
;
import
com.jeequan.jeepay.pay.util.ApiResBuilder
;
import
com.jeequan.jeepay.request.PayOrderCreateRequest
;
import
com.jeequan.jeepay.response.PayOrderCreateResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
/*
* 计全付 微信 小程序支付
*
* @author yr
* @site https://www.jeequan.com
* @date 2022/8/17 15:24
*/
@Service
(
"jeepluspayPaymentByWxLiteService"
)
//Service Name需保持全局唯一性
@Slf4j
public
class
WxLite
extends
JeepluspayPaymentService
{
@Override
public
String
preCheck
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
)
{
WxLiteOrderRQ
bizRQ
=
(
WxLiteOrderRQ
)
rq
;
if
(
StringUtils
.
isEmpty
(
bizRQ
.
getOpenid
()))
{
throw
new
BizException
(
"[openid]不可为空"
);
}
return
null
;
}
@Override
public
AbstractRS
pay
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
,
MchAppConfigContext
mchAppConfigContext
)
throws
Exception
{
WxLiteOrderRQ
bizRQ
=
(
WxLiteOrderRQ
)
rq
;
JeepluspayNormalMchParams
normalMchParams
=
(
JeepluspayNormalMchParams
)
configContextQueryService
.
queryNormalMchParams
(
mchAppConfigContext
.
getMchNo
(),
mchAppConfigContext
.
getAppId
(),
CS
.
IF_CODE
.
JEEPLUSPAY
);
// 构建请求数据
PayOrderCreateRequest
request
=
new
PayOrderCreateRequest
();
PayOrderCreateReqModel
model
=
new
PayOrderCreateReqModel
();
model
.
setMchNo
(
normalMchParams
.
getMerchantNo
());
// 商户号
model
.
setAppId
(
normalMchParams
.
getAppId
());
// 应用ID
model
.
setMchOrderNo
(
payOrder
.
getPayOrderId
());
// 商户订单号
model
.
setWayCode
(
JeepluspayConfig
.
WX_LITE
);
// 支付方式
model
.
setAmount
(
payOrder
.
getAmount
());
// 金额,单位分
model
.
setCurrency
(
payOrder
.
getCurrency
());
// 币种,目前只支持cny
model
.
setClientIp
(
payOrder
.
getClientIp
());
// 发起支付请求客户端的IP地址
model
.
setSubject
(
payOrder
.
getSubject
());
// 商品标题
model
.
setBody
(
payOrder
.
getBody
());
// 商品描述
model
.
setNotifyUrl
(
getNotifyUrl
());
// 异步通知地址
JSONObject
channelExtra
=
new
JSONObject
();
channelExtra
.
put
(
"openid"
,
bizRQ
.
getOpenid
());
model
.
setChannelExtra
(
channelExtra
.
toString
());
// 微信openId
request
.
setBizModel
(
model
);
// 构造函数响应数据
WxLiteOrderRS
res
=
ApiResBuilder
.
buildSuccess
(
WxLiteOrderRS
.
class
);
ChannelRetMsg
channelRetMsg
=
new
ChannelRetMsg
();
res
.
setChannelRetMsg
(
channelRetMsg
);
try
{
// 发起统一下单
PayOrderCreateResponse
response
=
new
PayOrderCreateResponse
();
boolean
checkSign
=
false
;
boolean
isSuccess
=
false
;
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
DEFAULT_SIGN_TYPE
)
||
StringUtils
.
isEmpty
(
normalMchParams
.
getSignType
()))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getAppSecret
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
execute
(
request
);
checkSign
=
response
.
checkSign
(
normalMchParams
.
getAppSecret
());
isSuccess
=
response
.
isSuccess
(
normalMchParams
.
getAppSecret
());
}
else
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
SIGN_TYPE_RSA2
))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getRsa2AppPrivateKey
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
executeByRSA2
(
request
);
checkSign
=
response
.
checkSignByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
isSuccess
=
response
.
isSuccessByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
}
if
(
checkSign
)
{
channelRetMsg
.
setChannelOrderId
(
response
.
get
().
getPayOrderId
());
if
(
isSuccess
)
{
// 下单成功
JSONObject
payData
=
response
.
getData
().
getJSONObject
(
"payData"
);
res
.
setPayInfo
(
payData
.
toJSONString
());
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
WAITING
);
}
else
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
channelRetMsg
.
setChannelErrCode
(
response
.
get
().
getErrCode
());
channelRetMsg
.
setChannelErrMsg
(
response
.
get
().
getErrMsg
());
}
}
}
catch
(
JeepayException
e
)
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
}
return
res
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/jeepluspay/payway/WxNative.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.channel.jeepluspay.payway
;
import
com.jeequan.jeepay.Jeepay
;
import
com.jeequan.jeepay.JeepayClient
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.entity.PayOrder
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig
;
import
com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams
;
import
com.jeequan.jeepay.exception.JeepayException
;
import
com.jeequan.jeepay.model.PayOrderCreateReqModel
;
import
com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService
;
import
com.jeequan.jeepay.pay.model.MchAppConfigContext
;
import
com.jeequan.jeepay.pay.rqrs.AbstractRS
;
import
com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxNativeOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxNativeOrderRS
;
import
com.jeequan.jeepay.pay.util.ApiResBuilder
;
import
com.jeequan.jeepay.request.PayOrderCreateRequest
;
import
com.jeequan.jeepay.response.PayOrderCreateResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
/*
* 计全付 微信 native支付
*
* @author yr
* @site https://www.jeequan.com
* @date 2022/8/11 15:37
*/
@Service
(
"jeepluspayPaymentByWxNativeService"
)
//Service Name需保持全局唯一性
public
class
WxNative
extends
JeepluspayPaymentService
{
@Override
public
String
preCheck
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
)
{
return
null
;
}
@Override
public
AbstractRS
pay
(
UnifiedOrderRQ
rq
,
PayOrder
payOrder
,
MchAppConfigContext
mchAppConfigContext
)
throws
Exception
{
WxNativeOrderRQ
bizRQ
=
(
WxNativeOrderRQ
)
rq
;
JeepluspayNormalMchParams
normalMchParams
=
(
JeepluspayNormalMchParams
)
configContextQueryService
.
queryNormalMchParams
(
mchAppConfigContext
.
getMchNo
(),
mchAppConfigContext
.
getAppId
(),
CS
.
IF_CODE
.
JEEPLUSPAY
);
// 构建请求数据
PayOrderCreateRequest
request
=
new
PayOrderCreateRequest
();
PayOrderCreateReqModel
model
=
new
PayOrderCreateReqModel
();
model
.
setMchNo
(
normalMchParams
.
getMerchantNo
());
// 商户号
model
.
setAppId
(
normalMchParams
.
getAppId
());
// 应用ID
model
.
setMchOrderNo
(
payOrder
.
getPayOrderId
());
// 商户订单号
model
.
setWayCode
(
JeepluspayConfig
.
WX_NATIVE
);
// 支付方式
model
.
setAmount
(
payOrder
.
getAmount
());
// 金额,单位分
model
.
setCurrency
(
payOrder
.
getCurrency
());
// 币种,目前只支持cny
model
.
setClientIp
(
payOrder
.
getClientIp
());
// 发起支付请求客户端的IP地址
model
.
setSubject
(
payOrder
.
getSubject
());
// 商品标题
model
.
setBody
(
payOrder
.
getBody
());
// 商品描述
model
.
setNotifyUrl
(
getNotifyUrl
());
// 异步通知地址
request
.
setBizModel
(
model
);
// 构造函数响应数据
WxNativeOrderRS
res
=
ApiResBuilder
.
buildSuccess
(
WxNativeOrderRS
.
class
);
ChannelRetMsg
channelRetMsg
=
new
ChannelRetMsg
();
res
.
setChannelRetMsg
(
channelRetMsg
);
try
{
// 发起统一下单
PayOrderCreateResponse
response
=
new
PayOrderCreateResponse
();
boolean
checkSign
=
false
;
boolean
isSuccess
=
false
;
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
DEFAULT_SIGN_TYPE
)
||
StringUtils
.
isEmpty
(
normalMchParams
.
getSignType
()))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getAppSecret
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
execute
(
request
);
checkSign
=
response
.
checkSign
(
normalMchParams
.
getAppSecret
());
isSuccess
=
response
.
isSuccess
(
normalMchParams
.
getAppSecret
());
}
else
if
(
normalMchParams
.
getSignType
().
equals
(
JeepluspayConfig
.
SIGN_TYPE_RSA2
))
{
JeepayClient
jeepayClient
=
JeepayClient
.
getInstance
(
normalMchParams
.
getAppId
(),
normalMchParams
.
getRsa2AppPrivateKey
(),
Jeepay
.
getApiBase
());
response
=
jeepayClient
.
executeByRSA2
(
request
);
checkSign
=
response
.
checkSignByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
isSuccess
=
response
.
isSuccessByRsa2
(
normalMchParams
.
getRsa2PayPublicKey
());
}
if
(
checkSign
)
{
channelRetMsg
.
setChannelOrderId
(
response
.
get
().
getPayOrderId
());
if
(
isSuccess
)
{
// 下单成功
// 二维码图片地址
if
(
CS
.
PAY_DATA_TYPE
.
CODE_IMG_URL
.
equals
(
bizRQ
.
getPayDataType
()))
{
res
.
setCodeImgUrl
(
sysConfigService
.
getDBApplicationConfig
().
genScanImgUrl
(
response
.
get
().
getPayData
()));
}
else
{
res
.
setCodeUrl
(
response
.
get
().
getPayData
());
}
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
WAITING
);
}
else
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
channelRetMsg
.
setChannelErrCode
(
response
.
get
().
getErrCode
());
channelRetMsg
.
setChannelErrMsg
(
response
.
get
().
getErrMsg
());
}
}
}
catch
(
JeepayException
e
)
{
channelRetMsg
.
setChannelState
(
ChannelRetMsg
.
ChannelState
.
CONFIRM_FAIL
);
}
return
res
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/channel/xxpay/payway/WxBar.java
View file @
2743de4b
...
...
@@ -23,8 +23,8 @@ import com.jeequan.jeepay.pay.model.MchAppConfigContext;
import
com.jeequan.jeepay.pay.rqrs.AbstractRS
;
import
com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.AliBarOrderRS
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxBarOrderRQ
;
import
com.jeequan.jeepay.pay.rqrs.payorder.payway.WxBarOrderRS
;
import
com.jeequan.jeepay.pay.util.ApiResBuilder
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -72,7 +72,7 @@ public class WxBar extends XxpayPaymentService {
paramMap
.
put
(
"body"
,
payOrder
.
getBody
());
paramMap
.
put
(
"extra"
,
bizRQ
.
getAuthCode
());
// 构造函数响应数据
Ali
BarOrderRS
res
=
ApiResBuilder
.
buildSuccess
(
Ali
BarOrderRS
.
class
);
Wx
BarOrderRS
res
=
ApiResBuilder
.
buildSuccess
(
Wx
BarOrderRS
.
class
);
ChannelRetMsg
channelRetMsg
=
new
ChannelRetMsg
();
res
.
setChannelRetMsg
(
channelRetMsg
);
// 发起支付
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/UnifiedOrderRQ.java
View file @
2743de4b
...
...
@@ -98,6 +98,10 @@ public class UnifiedOrderRQ extends AbstractMchAppRQ {
AliJsapiOrderRQ
bizRQ
=
JSONObject
.
parseObject
(
StringUtils
.
defaultIfEmpty
(
this
.
channelExtra
,
"{}"
),
AliJsapiOrderRQ
.
class
);
BeanUtils
.
copyProperties
(
this
,
bizRQ
);
return
bizRQ
;
}
else
if
(
CS
.
PAY_WAY_CODE
.
ALI_LITE
.
equals
(
wayCode
)){
AliLiteOrderRQ
bizRQ
=
JSONObject
.
parseObject
(
StringUtils
.
defaultIfEmpty
(
this
.
channelExtra
,
"{}"
),
AliLiteOrderRQ
.
class
);
BeanUtils
.
copyProperties
(
this
,
bizRQ
);
return
bizRQ
;
}
else
if
(
CS
.
PAY_WAY_CODE
.
QR_CASHIER
.
equals
(
wayCode
)){
QrCashierOrderRQ
bizRQ
=
JSONObject
.
parseObject
(
StringUtils
.
defaultIfEmpty
(
this
.
channelExtra
,
"{}"
),
QrCashierOrderRQ
.
class
);
BeanUtils
.
copyProperties
(
this
,
bizRQ
);
...
...
@@ -106,6 +110,10 @@ public class UnifiedOrderRQ extends AbstractMchAppRQ {
WxJsapiOrderRQ
bizRQ
=
JSONObject
.
parseObject
(
StringUtils
.
defaultIfEmpty
(
this
.
channelExtra
,
"{}"
),
WxJsapiOrderRQ
.
class
);
BeanUtils
.
copyProperties
(
this
,
bizRQ
);
return
bizRQ
;
}
else
if
(
CS
.
PAY_WAY_CODE
.
WX_LITE
.
equals
(
wayCode
)){
WxLiteOrderRQ
bizRQ
=
JSONObject
.
parseObject
(
StringUtils
.
defaultIfEmpty
(
this
.
channelExtra
,
"{}"
),
WxLiteOrderRQ
.
class
);
BeanUtils
.
copyProperties
(
this
,
bizRQ
);
return
bizRQ
;
}
else
if
(
CS
.
PAY_WAY_CODE
.
WX_BAR
.
equals
(
wayCode
)){
WxBarOrderRQ
bizRQ
=
JSONObject
.
parseObject
(
StringUtils
.
defaultIfEmpty
(
this
.
channelExtra
,
"{}"
),
WxBarOrderRQ
.
class
);
BeanUtils
.
copyProperties
(
this
,
bizRQ
);
...
...
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/payway/AliLiteOrderRQ.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.rqrs.payorder.payway
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/*
* 支付方式: ALI_LITE
*
* @author terrfly
* @site https://www.jeequan.com
* @date 2021/6/8 17:34
*/
@Data
public
class
AliLiteOrderRQ
extends
UnifiedOrderRQ
{
/** 支付宝用户ID **/
@NotBlank
(
message
=
"用户ID不能为空"
)
private
String
buyerUserId
;
/** 构造函数 **/
public
AliLiteOrderRQ
(){
this
.
setWayCode
(
CS
.
PAY_WAY_CODE
.
ALI_LITE
);
}
@Override
public
String
getChannelUserId
(){
return
this
.
buyerUserId
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/payway/AliLiteOrderRS.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.rqrs.payorder.payway
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.core.utils.JsonKit
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRS
;
import
lombok.Data
;
/*
* 支付方式: ALI_LITE
*
* @author terrfly
* @site https://www.jeequan.com
* @date 2021/6/8 17:34
*/
@Data
public
class
AliLiteOrderRS
extends
UnifiedOrderRS
{
/** 调起支付插件的支付宝订单号 **/
private
String
alipayTradeNo
;
@Override
public
String
buildPayDataType
(){
return
CS
.
PAY_DATA_TYPE
.
ALI_APP
;
}
@Override
public
String
buildPayData
(){
return
JsonKit
.
newJson
(
"alipayTradeNo"
,
alipayTradeNo
).
toString
();
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/payway/WxLiteOrderRQ.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.rqrs.payorder.payway
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
/*
* 支付方式: WX_LITE
*
* @author zhuxiao
* @site https://www.jeequan.com
* @date 2021/6/8 17:34
*/
@Data
public
class
WxLiteOrderRQ
extends
UnifiedOrderRQ
{
/** 微信openid **/
@NotBlank
(
message
=
"openid不能为空"
)
private
String
openid
;
/** 标志是否为 subMchLiteAppId的对应 openId, 0-否, 1-是, 默认否 **/
private
Byte
isSubOpenId
;
/** 构造函数 **/
public
WxLiteOrderRQ
(){
this
.
setWayCode
(
CS
.
PAY_WAY_CODE
.
WX_LITE
);
}
@Override
public
String
getChannelUserId
()
{
return
this
.
openid
;
}
}
jeepay-payment/src/main/java/com/jeequan/jeepay/pay/rqrs/payorder/payway/WxLiteOrderRS.java
0 → 100644
View file @
2743de4b
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jeequan.jeepay.pay.rqrs.payorder.payway
;
import
com.jeequan.jeepay.core.constants.CS
;
import
com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRS
;
import
lombok.Data
;
/*
* 支付方式: WX_LITE
*
* @author zhuxiao
* @site https://www.jeequan.com
* @date 2021/6/8 17:34
*/
@Data
public
class
WxLiteOrderRS
extends
UnifiedOrderRS
{
/** 预支付数据包 **/
private
String
payInfo
;
@Override
public
String
buildPayDataType
(){
return
CS
.
PAY_DATA_TYPE
.
WX_APP
;
}
@Override
public
String
buildPayData
(){
return
payInfo
;
}
}
libs/jeepay-sdk-java-pls-1.0.0.jar
0 → 100644
View file @
2743de4b
File added
Prev
1
2
Next
Write
Preview
Supports
Markdown
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