Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ufo
/
yohoufo-fore
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
tanling
6 years ago
Commit
d89c456464b318d403bf88e433af08c662a41457
1 parent
9aba302b
银联云闪付
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
62 additions
and
68 deletions
order/src/main/java/com/yohoufo/order/controller/PaymentController.java
order/src/main/java/com/yohoufo/order/service/pay/unionpay/utils/AcpService.java
web/src/main/webapp/META-INF/autoconf/acp_sdk.properties
order/src/main/java/com/yohoufo/order/controller/PaymentController.java
View file @
d89c456
...
...
@@ -88,7 +88,7 @@ public class PaymentController {
logger
.
info
(
"method com.yohoufo.order.controller.PaymentController.pay in, request is {}"
,
request
);
PrepayResponse
paymentResponse
=
paymentService
.
payment
(
request
);
PrepayResponse
paymentResponse
=
paymentService
.
payment
(
request
);
if
(
paymentResponse
.
getPrepayResult
()
==
PrepayResponse
.
FAILED
){
return
new
ApiResponse
.
ApiResponseBuilder
().
code
(
PrepayResponse
.
FAILED
).
data
(
paymentResponse
.
getJsonObj
()).
message
(
"预支付失败"
).
build
();
}
else
{
...
...
order/src/main/java/com/yohoufo/order/service/pay/unionpay/utils/AcpService.java
View file @
d89c456
...
...
@@ -17,18 +17,18 @@ import java.util.regex.Pattern;
public
class
AcpService
{
/**
* 请求报文签名(使用配置文件中配置的私钥证书加密)<br>
* 功能:对请求报文进行签名,并计算赋值certid,signature字段并返回<br>
* @param reqData 请求报文map<br>
* @param encoding 上送请求报文域encoding字段的值<br>
* @return 签名后的map对象<br>
*/
public
static
Map
<
String
,
String
>
sign
(
Map
<
String
,
String
>
reqData
,
String
encoding
)
{
Map
<
String
,
String
>
submitData
=
SDKUtil
.
filterBlank
(
reqData
);
SDKUtil
.
sign
(
submitData
,
encoding
);
return
submitData
;
}
// * 请求报文签名(使用配置文件中配置的私钥证书加密)<br>
// * 功能:对请求报文进行签名,并计算赋值certid,signature字段并返回<br>
// * @param reqData 请求报文map<br>
// * @param encoding 上送请求报文域encoding字段的值<br>
// * @return 签名后的map对象<br>
// */
// public static Map<String, String> sign(Map<String, String> reqData,String encoding) {
// Map<String, String> submitData = SDKUtil.filterBlank(reqData);
// SDKUtil.sign(submitData, encoding);
// return submitData;
// }
//
/**
* 多证书签名(通过传入私钥证书路径和密码加密)<br>
* 功能:如果有多个商户号接入银联,每个商户号对应不同的证书可以使用此方法:传入私钥证书和密码(并且在acp_sdk.properties中 配置 acpsdk.singleMode=false)<br>
...
...
@@ -126,13 +126,11 @@ public class AcpService {
/**
* 功能:后台交易提交请求报文并接收同步应答报文<br>
* @param reqData 请求报文<br>
* @param rspData 应答报文<br>
* @param reqUrl 请求地址<br>
* @param encoding<br>
* @return 应答http 200返回true ,其他false<br>
*/
public
static
Map
<
String
,
String
>
post
(
Map
<
String
,
String
>
reqData
,
String
reqUrl
,
String
encoding
)
{
public
static
Map
<
String
,
String
>
post
(
Map
<
String
,
String
>
reqData
,
String
reqUrl
,
String
encoding
)
{
Map
<
String
,
String
>
rspData
=
new
HashMap
<
String
,
String
>();
LogUtil
.
writeLog
(
"请求银联地址:"
+
reqUrl
);
//发送后台请求数据
...
...
@@ -156,31 +154,31 @@ public class AcpService {
}
/**
* 功能:http Get方法 便民缴费产品中使用<br>
* @param reqUrl
* @param encoding
* @return
*/
public
static
String
get
(
String
reqUrl
,
String
encoding
)
{
LogUtil
.
writeLog
(
"请求银联地址:"
+
reqUrl
);
//发送后台请求数据
HttpClient
hc
=
new
HttpClient
(
reqUrl
,
30000
,
30000
);
try
{
int
status
=
hc
.
sendGet
(
encoding
);
if
(
200
==
status
)
{
String
resultString
=
hc
.
getResult
();
if
(
null
!=
resultString
&&
!
""
.
equals
(
resultString
))
{
return
resultString
;
}
}
else
{
LogUtil
.
writeLog
(
"返回http状态码["
+
status
+
"],请检查请求报文或者请求地址是否正确"
);
}
}
catch
(
Exception
e
)
{
LogUtil
.
writeErrorLog
(
e
.
getMessage
(),
e
);
}
return
null
;
}
// * 功能:http Get方法 便民缴费产品中使用<br>
// * @param reqUrl
// * @param encoding
// * @return
// */
// public static String get(String reqUrl,String encoding) {
//
// LogUtil.writeLog("请求银联地址:" + reqUrl);
// //发送后台请求数据
// HttpClient hc = new HttpClient(reqUrl, 30000, 30000);
// try {
// int status = hc.sendGet(encoding);
// if (200 == status) {
// String resultString = hc.getResult();
// if (null != resultString && !"".equals(resultString)) {
// return resultString;
// }
// }else{
// LogUtil.writeLog("返回http状态码["+status+"],请检查请求报文或者请求地址是否正确");
// }
// } catch (Exception e) {
// LogUtil.writeErrorLog(e.getMessage(), e);
// }
// return null;
// }
/**
...
...
web/src/main/webapp/META-INF/autoconf/acp_sdk.properties
View file @
d89c456
######SDK config (product env) cert, addr#####
######(PM env:for testing)#######
##
#acpsdk.frontTransUrl=https://101.231.204.80:5000/gateway/api/frontTransReq.do
##
#acpsdk.backTransUrl=https://101.231.204.80:5000/gateway/api/backTransReq.do
## with card
#acpsdk.backTransUrl=https://101.231.204.80:5000/gateway/api/cardTransReq.do
##
#acpsdk.singleQueryUrl=https://101.231.204.80:5000/gateway/api/queryTrans.do
##
#acpsdk.batchTransUrl=https://101.231.204.80:5000/gateway/api/batchTransReq.do
##
#acpsdk.fileTransUrl=https://101.231.204.80:9080/
## app trans
#acpsdk.appTransUrl=https://101.231.204.80:5000/gateway/api/appTransReq.do
#acpsdk.appTransUrl=${acpsdk.appTransUrl}
########################## product #############################
######SDK配置文件 (生产环境) 证书,请求地址配置#####
##########################生产环境交易发送地址#############################
##前台交易请求地址
#acpsdk.frontTransUrl=https://gateway.95516.com/gateway/api/frontTransReq.do
##后台交易请求地址
#acpsdk.backTransUrl=https://gateway.95516.com/gateway/api/backTransReq.do
#acpsdk.singleQueryUrl=https://gateway.95516.com/gateway/api/queryTrans.do
##交易状态查询请求地址
acpsdk.singleQueryUrl
=
https://gateway.95516.com/gateway/api/queryTrans.do
##批量交易请求地址
#acpsdk.batchTransUrl=https://gateway.95516.com/gateway/api/batchTransReq.do
##文件传输类交易地址(对账文件下载接口)
#acpsdk.fileTransUrl=https://filedownload.95516.com/
acpsdk.appTransUrl
=
https://gateway.95516.com/gateway/api/appTransReq.do
######################### certs ################################
#########################生产测试环境签名证书配置 ################################
##签名证书路径,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法
#私钥证书是从入网通知邮件中获取两码,并从cfca官网下载到浏览器中然后导出来的,请配置到acpsdk.signCert.path指定的值下,不要忘记了将私钥传到merchant.unionpay.com并启用。
acpsdk.signCert.path
=
#acpsdk.signCert.path=/var/lib/tomcat/webapps/payment/WEB-INF/classes/certs/PM_700000000000001_acp.pfx
#acpsdk.signCert.path=/Users/ming/source/certs/pc_online_banking.pfx
#acpsdk.signCert.path=/Users/ming/source/certs/PM_700000000000001_acp.pfx
#linux下(注意:在linux下读取证书需要保证证书有被应用读的权限)
#acpsdk.signCert.path=/SERVICE01/usr/ac_frnas/conf/ACPtest/\u4ececfca\u4e0b\u8f7d\u7684\u6b63\u5f0f\u8bc1\u4e66.pfx
##签名证书密码,请修改为从cfca下载的正式私钥证书设置的密码,密码位数需小于等于6位,否则上传到商户服务网站会失败
acpsdk.signCert.pwd
=
yohobuy
#acpsdk.signCert.pwd=000000
#acpsdk.signCert.pwd=${acpsdk.signCert.pwd}
##签名证书类型,固定不需要修改
acpsdk.signCert.type
=
PKCS12
#acpsdk.encryptCert.path=/Users/ming/source/certs/RSA2048_PROD_index_22.cer
# put acp_prod_verify_sign.cer into acpsdk.validateCert.dir
#windows
##########################验签证书配置################################
##验证签名证书目录,只配置到目录即可,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法
#请将acp_prod_verify_sign.cer文件配置到acpsdk.validateCert.dir指定的目录下
#windows下
acpsdk.validateCert.dir
=
#acpsdk.validateCert.dir=/Users/ming/source/certs/
#linux
#linux
下(注意:在linux下读取证书需要保证证书有被应用读的权限)
#acpsdk.validateCert.dir=/SERVICE01/usr/ac_frnas/conf/ACPtest/
##是否启用多证书模式(true:单证书|false:多证书---没有配置此项时,默认为单证书模式)
acpsdk.singleMode
=
false
\ No newline at end of file
...
...
Please
register
or
login
to post a comment