Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rs-cloud-platform
Project
Project
Details
Activity
Releases
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
周健威
rs-cloud-platform
Commits
4b7209a3
Commit
4b7209a3
authored
Jul 15, 2021
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽取支付配置
parent
9dce3e07
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
80 deletions
+53
-80
WXPay.java
...va/com/upyuns/platform/rs/universal/weixin/api/WXPay.java
+0
-51
OrderPayBiz.java
...ava/com/upyuns/platform/rs/universal/biz/OrderPayBiz.java
+53
-29
No files found.
rs-universal/rs-universal-api/src/main/java/com/upyuns/platform/rs/universal/weixin/api/WXPay.java
View file @
4b7209a3
...
...
@@ -119,57 +119,6 @@ public class WXPay {
String
sign
=
MD5Util
.
MD5Encode
(
sb
.
toString
(),
"UTF-8"
).
toUpperCase
();
return
sign
;
}
/**
* app支付
* @param body 商品详情
* @param notify_url 回调地址
* @param orderNo 订单号
* @param spbill_create_ip 移动端的IP
* @return
*/
public
static
String
apppay
(
String
total_fee
,
String
body
,
String
notify_url
,
String
orderNo
,
String
spbill_create_ip
,
int
version
)
{
boolean
isWeixinPayConfigedForAppStore
=
(
0
==
version
);
WXPrepay
prePay
=
new
WXPrepay
();
prePay
.
setBody
(
body
);
if
(
isWeixinPayConfigedForAppStore
)
{
prePay
.
setAppid
(
SystemConfig
.
APP_ID
);
//pay.getAppId()
prePay
.
setPartnerKey
(
SystemConfig
.
APP_PARTNER_KEY
);
//pay.getPartnerKey()
prePay
.
setMch_id
(
SystemConfig
.
APP_PARTNER
);
//pay.getPartnerId()
prePay
.
setTrade_type
(
SystemConfig
.
APP_TRADE_TYPE
);
}
else
{
prePay
.
setAppid
(
SystemConfig
.
APP_ID_IOS
);
//pay.getAppId()
prePay
.
setPartnerKey
(
SystemConfig
.
APP_PARTNER_KEY_IOS
);
//pay.getPartnerKey()
prePay
.
setMch_id
(
SystemConfig
.
APP_PARTNER_IOS
);
//pay.getPartnerId()
prePay
.
setTrade_type
(
SystemConfig
.
APP_TRADE_TYPE_IOS
);
}
prePay
.
setNotify_url
(
notify_url
);
prePay
.
setOut_trade_no
(
orderNo
);
prePay
.
setSpbill_create_ip
(
spbill_create_ip
);
//"123.12.12.123"
prePay
.
setTotal_fee
(
total_fee
);
//此处添加获取openid的方法,获取预支付订单需要此参数!!!!!!!!!!!
// 获取预支付订单号
String
prepayid
=
prePay
.
submitXmlGetPrepayId
(
0
);
String
jsParam
=
""
;
if
(
prepayid
!=
null
&&
prepayid
.
length
()
>
10
)
{
// 生成微信支付参数,此处拼接为完整的JSON格式,符合支付调起传入格式
log
.
error
(
"微信支付>>>>>>>>>:\n isWeixinPayConfigedForAppStore="
+
isWeixinPayConfigedForAppStore
);
log
.
error
(
"prepayid="
+
prepayid
);
log
.
error
(
"SystemConfig.APP_PARTNER_IOS="
+
SystemConfig
.
APP_PARTNER_IOS
);
log
.
error
(
"SystemConfig.APP_ID_IOS="
+
SystemConfig
.
APP_ID_IOS
);
log
.
error
(
"SystemConfig.APP_PARTNER_KEY_IOS="
+
SystemConfig
.
APP_PARTNER_KEY_IOS
);
log
.
error
(
"SystemConfig.APP_TRADE_TYPE_IOS="
+
SystemConfig
.
APP_TRADE_TYPE_IOS
);
if
(
isWeixinPayConfigedForAppStore
)
{
jsParam
=
createPackageValue
(
SystemConfig
.
APP_ID
,
SystemConfig
.
APP_PARTNER
,
prepayid
,
version
);
}
else
{
jsParam
=
createPackageValue
(
SystemConfig
.
APP_ID_IOS
,
SystemConfig
.
APP_PARTNER_IOS
,
prepayid
,
version
);
}
}
return
jsParam
;
}
/**
* app 生成签名
...
...
rs-universal/rs-universal-server/src/main/java/com/upyuns/platform/rs/universal/biz/OrderPayBiz.java
View file @
4b7209a3
...
...
@@ -16,6 +16,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.HTTPSUtils
;
import
com.github.wxiaoqi.security.common.util.OrderUtil
;
import
com.github.wxiaoqi.security.common.util.SystemProperty
;
import
com.github.wxiaoqi.security.common.util.UUIDUtils
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.SystemConfig
;
...
...
@@ -32,6 +33,7 @@ import com.upyuns.platform.rs.universal.constant.WxResponseProperties;
import
com.upyuns.platform.rs.universal.weixin.util.HTTPUtils
;
import
com.upyuns.platform.rs.website.entity.OrderInfo
;
import
com.upyuns.platform.rs.website.feign.WebsiteFeign
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -56,6 +58,7 @@ import static com.upyuns.platform.rs.universal.constant.DictionaryKey.UNIVERSAL_
*/
@Service
@Slf4j
@Data
public
class
OrderPayBiz
extends
BaseBiz
<
OrderPayMapper
,
OrderPay
>
{
@Autowired
...
...
@@ -70,6 +73,27 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
@Value
(
"${universal.url}"
)
String
weixinHost
;
@Value
(
"${ali.pay.baseUrl}"
)
public
String
ALIPAY_PAY_BASE_URL
;
@Value
(
"${ali.pay.appId}"
)
public
String
ALIPAY_APPID
;
@Value
(
"${ali.pay.pid}"
)
public
String
ALIPAY_PID
;
@Value
(
"${ali.pay.publicKey}"
)
public
String
ALIPAY_PUBLIC_KEY
;
@Value
(
"${ali.pay.acount}"
)
public
String
ALIPAY_ACOUNT
;
@Value
(
"${ali.pay.privateKey}"
)
public
String
ALIPAY_PRIVATE_KEY
;
@Value
(
"${wx.appPartner}"
)
public
String
APP_PARTNER
;
// @Value("${wx.appSercet}")
// private String wy_secret;
...
...
@@ -117,7 +141,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
Integer
payWay
=
orderPayVo
.
getPayWay
()
==
null
?
1
:
orderPayVo
.
getPayWay
();
String
sellerAccount
=
null
;
if
(
payWay
==
2
)
{
//支付宝
sellerAccount
=
SystemConfig
.
ALIPAY_PID
;
sellerAccount
=
ALIPAY_PID
;
orderPayVo
.
setPayType
(
2
);
jsParam
=
generateAliPayment
(
orderPayVo
,
notifyUrl
);
if
(
StringUtils
.
isNotBlank
(
jsParam
))
{
...
...
@@ -135,10 +159,10 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
}
}
}
else
if
(
payWay
==
1
)
{
//微信支付
sellerAccount
=
SystemConfig
.
APP_PARTNER
;
sellerAccount
=
APP_PARTNER
;
jsParam
=
WXPay
.
getH5PayParam
(
amount
+
""
,
orderPayVo
.
getBuyerIp
(),
trade_no
,
orderPayVo
.
getBody
(),
orderPayVo
.
getBody
(),
orderPayVo
.
getBody
(),
notify_url
);
}
else
if
(
payWay
==
3
)
{
//对公账户支付
sellerAccount
=
SystemConfig
.
APP_PARTNER
;
sellerAccount
=
APP_PARTNER
;
}
log
.
info
(
"报名费回调路径jsParam:"
+
jsParam
);
...
...
@@ -206,7 +230,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
log
.
info
(
"alipay notify message={}"
,
msg
);
//支付宝回调验签
try
{
boolean
flag
=
AlipaySignature
.
rsaCheckV1
(
params
,
SystemConfig
.
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
CHARSET_UTF8
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
boolean
flag
=
AlipaySignature
.
rsaCheckV1
(
params
,
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
CHARSET_UTF8
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
if
(!
flag
)
{
log
.
info
(
"alipay order rsaCheckV1 fail, result={}"
,
msg
);
return
ObjectRestResponse
.
createDefaultFail
().
getMessage
();
...
...
@@ -261,9 +285,9 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
private
AlipayClient
getAlipayClient
()
{
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
SystemConfig
.
ALIPAY_PAY_BASE_URL
+
"/gateway.do"
,
SystemConfig
.
ALIPAY_APPID
,
SystemConfig
.
ALIPAY_PRIVATE_KEY
,
AlipayConstants
.
FORMAT_JSON
,
"utf-8"
,
SystemConfig
.
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
ALIPAY_PAY_BASE_URL
+
"/gateway.do"
,
ALIPAY_APPID
,
ALIPAY_PRIVATE_KEY
,
AlipayConstants
.
FORMAT_JSON
,
"utf-8"
,
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
return
alipayClient
;
}
...
...
@@ -567,20 +591,20 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
stringBuilder
.
append
(
"apiname="
);
stringBuilder
.
append
(
"com.alipay.account.auth"
);
stringBuilder
.
append
(
"&app_id="
);
stringBuilder
.
append
(
SystemConfig
.
ALIPAY_APPID
);
stringBuilder
.
append
(
ALIPAY_APPID
);
stringBuilder
.
append
(
"&app_name="
);
stringBuilder
.
append
(
"mc"
);
stringBuilder
.
append
(
"&auth_type=AUTHACCOUNT"
);
stringBuilder
.
append
(
"&biz_type=openservice"
);
stringBuilder
.
append
(
"&method=alipay.open.auth.sdk.code.get"
);
stringBuilder
.
append
(
"&pid="
);
stringBuilder
.
append
(
SystemConfig
.
ALIPAY_PID
);
stringBuilder
.
append
(
ALIPAY_PID
);
stringBuilder
.
append
(
"&product_id=APP_FAST_LOGIN"
);
stringBuilder
.
append
(
"&scope=kuaijie"
);
stringBuilder
.
append
(
"&sign_type=RSA2"
);
stringBuilder
.
append
(
"&target_id="
);
stringBuilder
.
append
(
UUIDUtils
.
generateShortUuid
());
String
sign
=
SignUtils
.
sign
(
stringBuilder
.
toString
(),
SystemConfig
.
ALIPAY_PRIVATE_KEY
,
true
);
String
sign
=
SignUtils
.
sign
(
stringBuilder
.
toString
(),
ALIPAY_PRIVATE_KEY
,
true
);
stringBuilder
.
append
(
"&sign="
);
stringBuilder
.
append
(
sign
);
return
stringBuilder
.
toString
();
...
...
@@ -675,8 +699,8 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
model
.
setSubject
(
"订单费用"
);
}
model
.
setTotalAmount
(
realAmount
.
toString
());
// 结算支付金额
model
.
setSellerId
(
SystemConfig
.
ALIPAY_PID
);
// 填写卖家支付宝账户pid
model
.
setBuyerId
(
SystemConfig
.
ALIPAY_APPID
);
// 填写预授权用户uid,通过预授权冻结接口返回的payer_user_id字段获取
model
.
setSellerId
(
ALIPAY_PID
);
// 填写卖家支付宝账户pid
model
.
setBuyerId
(
ALIPAY_APPID
);
// 填写预授权用户uid,通过预授权冻结接口返回的payer_user_id字段获取
if
(
StringUtils
.
isNotBlank
(
refundReason
))
{
model
.
setBody
(
refundReason
);
// 可填写备注信息
}
else
{
...
...
@@ -791,23 +815,23 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
}
public
static
void
main
(
String
[]
args
)
throws
AlipayApiException
{
AlipayClient
alipayClient
=
new
DefaultAlipayClient
(
SystemConfig
.
ALIPAY_PAY_BASE_URL
+
"/gateway.do"
,
SystemConfig
.
ALIPAY_APPID
,
SystemConfig
.
ALIPAY_PRIVATE_KEY
,
AlipayConstants
.
FORMAT_JSON
,
"utf-8"
,
SystemConfig
.
ALIPAY_PUBLIC_KEY
,
AlipayConstants
.
SIGN_TYPE_RSA2
);
AlipayTradePrecreateRequest
request
=
new
AlipayTradePrecreateRequest
();
request
.
setBizContent
(
"{"
+
"\"out_trade_no\":\"20150320010101001\","
+
"\"total_amount\":88.88,"
+
"\"subject\":\"Iphone6 16G\","
+
"\"body\":\"Iphone6 16G\""
+
" }"
);
AlipayTradePrecreateResponse
response
=
alipayClient
.
execute
(
request
);
System
.
out
.
println
(
response
.
getBody
());
if
(
response
.
isSuccess
()){
System
.
out
.
println
(
"调用成功"
);
}
else
{
System
.
out
.
println
(
"调用失败"
);
}
//
AlipayClient alipayClient = new DefaultAlipayClient(SystemConfig.ALIPAY_PAY_BASE_URL + "/gateway.do",
//
SystemConfig.ALIPAY_APPID, SystemConfig.ALIPAY_PRIVATE_KEY, AlipayConstants.FORMAT_JSON,
//
"utf-8", SystemConfig.ALIPAY_PUBLIC_KEY, AlipayConstants.SIGN_TYPE_RSA2);
//
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
//
request.setBizContent("{" +
//
"\"out_trade_no\":\"20150320010101001\"," +
//
"\"total_amount\":88.88," +
//
"\"subject\":\"Iphone6 16G\"," +
//
"\"body\":\"Iphone6 16G\"" +
//
" }");
//
AlipayTradePrecreateResponse response = alipayClient.execute(request);
//
System.out.println(response.getBody());
//
if(response.isSuccess()){
//
System.out.println("调用成功");
//
} else {
//
System.out.println("调用失败");
//
}
}
...
...
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