Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
Z
zion
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
zhengfg
zion
Commits
c21b8ab3
提交
c21b8ab3
authored
11月 27, 2019
作者:
zgy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
flutter支付
上级
fe317f6a
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
130 行增加
和
36 行删除
+130
-36
TokenVerification.java
...com/diaoyun/zion/chinafrica/client/TokenVerification.java
+2
-1
FlutterWaveController.java
...yun/zion/chinafrica/controller/FlutterWaveController.java
+26
-2
FlutterWaveService.java
...m/diaoyun/zion/chinafrica/service/FlutterWaveService.java
+5
-1
FlutterWaveServiceImpl.java
.../zion/chinafrica/service/impl/FlutterWaveServiceImpl.java
+69
-22
TbCfOrderServiceImpl.java
...un/zion/chinafrica/service/impl/TbCfOrderServiceImpl.java
+3
-3
domain.properties
src/main/resources/properties/domain.properties
+9
-7
PayTest.java
src/test/java/com/diaoyun/zion/PayTest.java
+16
-0
没有找到文件。
src/main/java/com/diaoyun/zion/chinafrica/client/TokenVerification.java
浏览文件 @
c21b8ab3
...
@@ -48,7 +48,8 @@ public class TokenVerification {
...
@@ -48,7 +48,8 @@ public class TokenVerification {
"&&!execution(* com.diaoyun.zion.chinafrica.controller.VersionController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.VersionController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.TbCfFeeController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.TbCfFeeController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.PayPalController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.PayPalController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.ShopifyController.*(..))"
"&&!execution(* com.diaoyun.zion.chinafrica.controller.ShopifyController.*(..))"
+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.FlutterWaveController.*(..))"
)
)
public
void
controllerAspect
()
{
public
void
controllerAspect
()
{
...
...
src/main/java/com/diaoyun/zion/chinafrica/controller/FlutterWaveController.java
浏览文件 @
c21b8ab3
...
@@ -3,9 +3,13 @@ package com.diaoyun.zion.chinafrica.controller;
...
@@ -3,9 +3,13 @@ package com.diaoyun.zion.chinafrica.controller;
import
com.diaoyun.zion.chinafrica.service.FlutterWaveService
;
import
com.diaoyun.zion.chinafrica.service.FlutterWaveService
;
import
com.diaoyun.zion.chinafrica.vo.FlutterWaveCard
;
import
com.diaoyun.zion.chinafrica.vo.FlutterWaveCard
;
import
com.diaoyun.zion.master.base.Result
;
import
com.diaoyun.zion.master.base.Result
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
/**
/**
* @Auther: wudepeng
* @Auther: wudepeng
* @Date: 2019/11/08
* @Date: 2019/11/08
...
@@ -25,12 +29,27 @@ public class FlutterWaveController {
...
@@ -25,12 +29,27 @@ public class FlutterWaveController {
* @return
* @return
*/
*/
@PostMapping
(
"/pay"
)
@PostMapping
(
"/pay"
)
public
Result
payForOrderByCard
(
@RequestParam
(
"orderId"
)
String
orderId
,
@RequestBody
FlutterWaveCard
flutterWaveCard
)
{
public
Result
payForOrderByCard
(
@
ApiParam
(
"订单ID"
)
@
RequestParam
(
"orderId"
)
String
orderId
,
@RequestBody
FlutterWaveCard
flutterWaveCard
)
{
return
flutterWaveService
.
payForOrder
(
orderId
,
flutterWaveCard
);
return
flutterWaveService
.
payForOrder
(
orderId
,
flutterWaveCard
);
}
}
/**
* 验证付款
*
* @param txref
* @param orderId
* @return
*/
@PostMapping
(
"/verifyPay"
)
public
Result
verifyPay
(
@ApiParam
(
"交易唯一标识"
)
@RequestParam
(
"txref"
)
String
txref
,
@ApiParam
(
"订单ID"
)
@RequestParam
(
"orderId"
)
String
orderId
)
{
return
flutterWaveService
.
verifyPay
(
txref
,
orderId
);
}
/**
/**
* 退款
* 退款
*
* @param flutterWaveCard
* @param flutterWaveCard
* @return
* @return
*/
*/
...
@@ -38,5 +57,10 @@ public class FlutterWaveController {
...
@@ -38,5 +57,10 @@ public class FlutterWaveController {
public
Result
refund
(
@RequestBody
FlutterWaveCard
flutterWaveCard
)
{
public
Result
refund
(
@RequestBody
FlutterWaveCard
flutterWaveCard
)
{
return
flutterWaveService
.
refund
(
flutterWaveCard
);
return
flutterWaveService
.
refund
(
flutterWaveCard
);
}
}
//
// @GetMapping("/queryPayParams")
// public Result queryPayParams(@ApiParam("用户ID") @RequestParam("userId") String userId) {
//
//
// }
}
}
src/main/java/com/diaoyun/zion/chinafrica/service/FlutterWaveService.java
浏览文件 @
c21b8ab3
...
@@ -2,9 +2,13 @@ package com.diaoyun.zion.chinafrica.service;
...
@@ -2,9 +2,13 @@ package com.diaoyun.zion.chinafrica.service;
import
com.diaoyun.zion.chinafrica.vo.FlutterWaveCard
;
import
com.diaoyun.zion.chinafrica.vo.FlutterWaveCard
;
import
com.diaoyun.zion.master.base.Result
;
import
com.diaoyun.zion.master.base.Result
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
/**
/**
* @Auther: wudepeng
* @Auther: wudepeng
* @Date: 2019/11/09
* @Date: 2019/11/09
...
@@ -12,6 +16,6 @@ import org.springframework.web.bind.annotation.RequestParam;
...
@@ -12,6 +16,6 @@ import org.springframework.web.bind.annotation.RequestParam;
*/
*/
public
interface
FlutterWaveService
{
public
interface
FlutterWaveService
{
public
Result
payForOrder
(
String
orderId
,
FlutterWaveCard
flutterWaveCard
);
public
Result
payForOrder
(
String
orderId
,
FlutterWaveCard
flutterWaveCard
);
Result
verifyPay
(
String
txref
,
String
orderId
);
public
Result
refund
(
FlutterWaveCard
flutterWaveCard
);
public
Result
refund
(
FlutterWaveCard
flutterWaveCard
);
}
}
src/main/java/com/diaoyun/zion/chinafrica/service/impl/FlutterWaveServiceImpl.java
浏览文件 @
c21b8ab3
package
com
.
diaoyun
.
zion
.
chinafrica
.
service
.
impl
;
package
com
.
diaoyun
.
zion
.
chinafrica
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.diaoyun.zion.chinafrica.constant.KeyConstant
;
import
com.diaoyun.zion.chinafrica.constant.KeyConstant
;
import
com.diaoyun.zion.chinafrica.dao.TbCfFinanceDao
;
import
com.diaoyun.zion.chinafrica.dao.TbCfFinanceDao
;
import
com.diaoyun.zion.chinafrica.dao.TbCfOrderDao
;
import
com.diaoyun.zion.chinafrica.dao.TbCfOrderDao
;
...
@@ -59,8 +60,12 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
...
@@ -59,8 +60,12 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
//退款API
//退款API
private
String
FLUTTERWAVE_REFUND_URL
=
"https://api.ravepay.co/gpx/merchant/transactions/refund"
;
private
String
FLUTTERWAVE_REFUND_URL
=
"https://api.ravepay.co/gpx/merchant/transactions/refund"
;
private
String
VERIFY_PAY_URL
=
"https://api.ravepay.co/flwv3-pug/getpaidx/api/v2/verify"
;
//测试
//private String VERIFY_PAY_URL = "https://ravesandboxapi.flutterwave.com/flwv3-pug/getpaidx/api/v2/verify";
/**
/**
* 使用卡号支付
* 使用卡号支付
(预支付)
*
*
* @param orderId
* @param orderId
* @param flutterWaveCard
* @param flutterWaveCard
...
@@ -76,7 +81,7 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
...
@@ -76,7 +81,7 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
TbCfOrderEntity
orderEntity
=
tbCfOrderDao
.
queryObject
(
orderId
);
TbCfOrderEntity
orderEntity
=
tbCfOrderDao
.
queryObject
(
orderId
);
//判断这个订单是否已支付
//判断这个订单是否已支付
if
(
orderEntity
!=
null
&&
OrderStatusEnum
.
PAID
.
getValue
().
equals
(
orderEntity
.
getPayStatus
()))
{
if
(
orderEntity
!=
null
&&
OrderStatusEnum
.
PAID
.
getValue
().
equals
(
orderEntity
.
getPayStatus
()))
{
result
.
setMessage
(
"Order paid"
);
result
.
setMessage
(
"Order paid
!
"
);
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
());
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
());
return
result
;
return
result
;
}
}
...
@@ -96,42 +101,84 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
...
@@ -96,42 +101,84 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
JSONObject
chargevisa
=
ch
.
chargeVisaAndIntl
();
JSONObject
chargevisa
=
ch
.
chargeVisaAndIntl
();
//if timeout, poll
//if timeout, poll
//JSONObject pollvisa = ch.chargeVisaAndIntl(true);
//JSONObject pollvisa = ch.chargeVisaAndIntl(true);
net
.
sf
.
json
.
JSONObject
object
=
net
.
sf
.
json
.
JSONObject
.
fromObject
(
chargevisa
.
toString
());
result
.
setData
(
chargevisa
);
String
status
=
object
.
getString
(
"status"
);
}
catch
(
Exception
e
)
{
if
(
"success"
.
equals
(
status
))
{
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
()).
setMessage
(
e
.
getMessage
());
net
.
sf
.
json
.
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
logger
.
error
(
e
.
getMessage
(),
e
);
String
paymentId
=
data
.
getString
(
"paymentId"
);
return
result
;
String
authurl
=
data
.
getString
(
"authurl"
);
}
String
url
=
authurl
.
split
(
". "
)[
0
];
}
else
{
changeOrderState
(
paymentId
,
tbCfOrderVo
);
result
.
setMessage
(
"Order does not exist!"
);
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
());
}
return
result
;
}
/**
* 校验支付
*
* @param txref
* @param orderId
* @return
*/
@Override
public
Result
verifyPay
(
String
txref
,
String
orderId
)
{
Result
result
=
new
Result
();
try
{
TbCfOrderVo
tbCfOrderVo
=
(
TbCfOrderVo
)
orderRedisCache
.
get
(
KeyConstant
.
ORDER_DET
+
orderId
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"txref"
,
txref
);
map
.
put
(
"SECKEY"
,
domainProperties
.
getProperty
(
"flutterwave.secret.key"
));
String
data
=
HttpClientUtil
.
sendPostWithBodyParameter
(
VERIFY_PAY_URL
,
map
);
//System.out.println("===>>>" + data);
com
.
alibaba
.
fastjson
.
JSONObject
object
=
JSON
.
parseObject
(
data
);
String
statusFlag
=
object
.
getString
(
"status"
);
com
.
alibaba
.
fastjson
.
JSONObject
results
=
object
.
getJSONObject
(
"data"
);
String
status
=
results
.
getString
(
"status"
);
String
paymentid
=
results
.
getString
(
"paymentid"
);
String
authurl
=
results
.
getString
(
"authurl"
);
//String amount = results.getString("amount");
// System.out.println("price=" + tbCfOrderVo.getRealityPay());
if
(
"success"
.
equalsIgnoreCase
(
statusFlag
)
&&
"successful"
.
equalsIgnoreCase
(
status
))
{
//支付成功
if
(
tbCfOrderVo
!=
null
)
{
// if (!tbCfOrderVo.getRealityPay().equals(amount)) {
// System.out.println("amount=" + amount);
// System.out.println("price=" + tbCfOrderVo.getRealityPay());
// result.setData(JSON.parseObject(data)).setMessage("The payment amount is inconsistent with the order amount!");
// return result;
// }
changeOrderState
(
paymentid
,
tbCfOrderVo
);
//修改优惠券状态
//修改优惠券状态
if
(
tbCfOrderVo
.
getCouponId
()
!=
null
&&
"20"
.
equals
(
tbCfOrderVo
.
getOrderStatus
()))
{
if
(
tbCfOrderVo
.
getCouponId
()
!=
null
&&
"20"
.
equals
(
tbCfOrderVo
.
getOrderStatus
()))
{
TbCfToiCouponDao
.
changeCoupnStatus
(
tbCfOrderVo
.
getUserId
(),
tbCfOrderVo
.
getCouponId
());
TbCfToiCouponDao
.
changeCoupnStatus
(
tbCfOrderVo
.
getUserId
(),
tbCfOrderVo
.
getCouponId
());
}
}
//生成支付流水
//生成支付流水
TbCfFinanceEntity
finance
=
createFinance
(
payment
Id
,
url
,
tbCfOrderVo
);
TbCfFinanceEntity
finance
=
createFinance
(
payment
id
,
auth
url
,
tbCfOrderVo
);
TbCfFinanceVo
tbCfFinanceVo
=
new
TbCfFinanceVo
();
TbCfFinanceVo
tbCfFinanceVo
=
new
TbCfFinanceVo
();
BeanUtils
.
copyProperties
(
finance
,
tbCfFinanceVo
);
BeanUtils
.
copyProperties
(
finance
,
tbCfFinanceVo
);
result
.
setData
(
chargevisa
).
setMessage
(
"Pay for success!"
);
logger
.
info
(
tbCfOrderVo
.
getUserName
()
+
":Pay for success! The order number is:"
+
tbCfOrderVo
.
getOrderId
());
logger
.
info
(
tbCfOrderVo
.
getUserName
()
+
":Pay for success! The order number is:"
+
tbCfOrderVo
.
getOrderId
());
//清空订单
//清空订单
removeRedisCache
(
tbCfOrderVo
);
removeRedisCache
(
tbCfOrderVo
);
}
result
.
setData
(
JSON
.
parseObject
(
data
));
result
.
setCode
(
ResultCodeEnum
.
SUCCESS
.
getCode
()).
setMessage
(
"payment success!"
);
logger
.
info
(
"payment success! The flutterwave txref is:"
+
txref
);
}
else
{
}
else
{
result
.
setData
(
JSON
.
parseObject
(
data
));
//支付失败
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
()).
setMessage
(
"payment failure!"
);
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
()).
setMessage
(
"payment failure!"
);
logger
.
error
(
tbCfOrderVo
.
getUserName
()
+
":payment failure! The order number is:"
+
tbCfOrderVo
.
getOrderId
()
);
logger
.
error
(
"payment failure! The flutterwave txref is:"
+
txref
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY
_ERROR
.
getCode
()).
setMessage
(
e
.
getMessage
());
result
.
setCode
(
ResultCodeEnum
.
VALIDATE
_ERROR
.
getCode
()).
setMessage
(
e
.
getMessage
());
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
return
result
;
return
result
;
}
}
}
else
{
result
.
setMessage
(
"Order does not exist!"
);
result
.
setCode
(
ResultCodeEnum
.
ORDER_PAY_ERROR
.
getCode
());
}
return
result
;
return
result
;
}
}
/**
/**
* 退款
* 退款
*
*
...
...
src/main/java/com/diaoyun/zion/chinafrica/service/impl/TbCfOrderServiceImpl.java
浏览文件 @
c21b8ab3
...
@@ -228,7 +228,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
...
@@ -228,7 +228,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
for
(
TbCfItemDetailEntity
tbCfItemDetail
:
tbCfItemDetailList
)
{
for
(
TbCfItemDetailEntity
tbCfItemDetail
:
tbCfItemDetailList
)
{
TbCfCartItemDetailVo
tbCfCartItemDetailVo
=
new
TbCfCartItemDetailVo
();
TbCfCartItemDetailVo
tbCfCartItemDetailVo
=
new
TbCfCartItemDetailVo
();
BeanUtils
.
copyProperties
(
tbCfItemDetail
,
tbCfCartItemDetailVo
);
BeanUtils
.
copyProperties
(
tbCfItemDetail
,
tbCfCartItemDetailVo
);
tbCfCartItemDetailVo
.
setOrdersId
(
tbCfOrderDao
.
getOrdersId
(
orderVo
.
getOrderId
(),
tbCfItemDetail
.
getItemId
()));
tbCfCartItemDetailVo
.
setOrdersId
(
tbCfOrderDao
.
getOrdersId
(
orderVo
.
getOrderId
(),
tbCfItemDetail
.
getItemId
()));
itemDetailVoList
.
add
(
tbCfCartItemDetailVo
);
itemDetailVoList
.
add
(
tbCfCartItemDetailVo
);
}
}
orderVo
.
setItemDetailList
(
itemDetailVoList
);
orderVo
.
setItemDetailList
(
itemDetailVoList
);
...
@@ -434,7 +434,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
...
@@ -434,7 +434,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
for
(
TbCfItemDetailEntity
tbCfItemDetail
:
tbCfItemDetailList
)
{
for
(
TbCfItemDetailEntity
tbCfItemDetail
:
tbCfItemDetailList
)
{
TbCfCartItemDetailVo
tbCfCartItemDetailVo
=
new
TbCfCartItemDetailVo
();
TbCfCartItemDetailVo
tbCfCartItemDetailVo
=
new
TbCfCartItemDetailVo
();
BeanUtils
.
copyProperties
(
tbCfItemDetail
,
tbCfCartItemDetailVo
);
BeanUtils
.
copyProperties
(
tbCfItemDetail
,
tbCfCartItemDetailVo
);
tbCfCartItemDetailVo
.
setOrdersId
(
tbCfOrderDao
.
getOrdersId
(
orderId
,
tbCfItemDetail
.
getItemId
()));
tbCfCartItemDetailVo
.
setOrdersId
(
tbCfOrderDao
.
getOrdersId
(
orderId
,
tbCfItemDetail
.
getItemId
()));
itemDetailVoList
.
add
(
tbCfCartItemDetailVo
);
itemDetailVoList
.
add
(
tbCfCartItemDetailVo
);
}
}
tbCfOrderVo
.
setItemDetailList
(
itemDetailVoList
);
tbCfOrderVo
.
setItemDetailList
(
itemDetailVoList
);
...
@@ -664,7 +664,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
...
@@ -664,7 +664,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//初始商品总价
//初始商品总价
BigDecimal
itemsPrice
=
BigDecimal
.
valueOf
(
0.00
);
BigDecimal
itemsPrice
=
BigDecimal
.
valueOf
(
0.00
);
BigDecimal
totalExpressCost
=
BigDecimal
.
ZERO
;
BigDecimal
totalExpressCost
=
BigDecimal
.
ZERO
;
for
(
TbCfCartItemDetailVo
tbCfCartItemDetailVo:
itemDetailList
)
{
for
(
TbCfCartItemDetailVo
tbCfCartItemDetailVo
:
itemDetailList
)
{
BigDecimal
itemNum
=
BigDecimal
.
valueOf
(
tbCfCartItemDetailVo
.
getItemNum
());
BigDecimal
itemNum
=
BigDecimal
.
valueOf
(
tbCfCartItemDetailVo
.
getItemNum
());
BigDecimal
itemSourcePrice
=
tbCfCartItemDetailVo
.
getItemPrice
();
BigDecimal
itemSourcePrice
=
tbCfCartItemDetailVo
.
getItemPrice
();
itemsPrice
=
itemsPrice
.
add
(
itemSourcePrice
.
multiply
(
itemNum
));
itemsPrice
=
itemsPrice
.
add
(
itemSourcePrice
.
multiply
(
itemNum
));
...
...
src/main/resources/properties/domain.properties
浏览文件 @
c21b8ab3
...
@@ -31,10 +31,12 @@ tencent.translate.app_url=https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate
...
@@ -31,10 +31,12 @@ tencent.translate.app_url=https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate
tencent.wordpos.app_url
=
https://api.ai.qq.com/fcgi-bin/nlp/nlp_wordpos
tencent.wordpos.app_url
=
https://api.ai.qq.com/fcgi-bin/nlp/nlp_wordpos
################\u817E\u8BAF\u7FFB\u8BD1\u914D\u7F6E END###################
################\u817E\u8BAF\u7FFB\u8BD1\u914D\u7F6E END###################
##################\u65B011.05(stripe\u516C\u94A5(\u4E0D\u52A0\u5BC6)\u548C\u79C1\u94A5(\u5DF2\u7528 AESUtils \u52A0\u5BC6))################################
##################\u65B011.05(stripe\u516C\u94A5(\u4E0D\u52A0\u5BC6)\u548C\u79C1\u94A5(\u5DF2\u7528 AESUtils \u52A0\u5BC6))################################
stripe.pk
=
pk_live_FP6ipnw3lt0e1AmS5IVdpJWd00s5PLdbVa
#
stripe.pk=pk_live_FP6ipnw3lt0e1AmS5IVdpJWd00s5PLdbVa
stripe.sk
=
YWA9aMOPvCfq0KWda2Wsh567lLl600+QK/X8ZEFDPj6UDNd3icKr6fJ+X3ey8X+T
#
stripe.sk=YWA9aMOPvCfq0KWda2Wsh567lLl600+QK/X8ZEFDPj6UDNd3icKr6fJ+X3ey8X+T
#stripe.pk=pk_test_y5dXLjyUyBD11Ta9g2DGynxN0048vnmpGz
#stripe.pk=pk_test_y5dXLjyUyBD11Ta9g2DGynxN0048vnmpGz
#stripe.sk=+RFm7p84hym4liN1/MSoshYMiy4rWgUFoZ3S5+ucxRTyzblQL2Pi0y1TDQoSE96z
#stripe.sk=+RFm7p84hym4liN1/MSoshYMiy4rWgUFoZ3S5+ucxRTyzblQL2Pi0y1TDQoSE96z
stripe.pk
=
pk_live_puDlKTnBSW6CXQ6TG766jWZ000UuPSIUDU
stripe.sk
=
YVym3/CqlcF3PF6JZw6CEOhCoR4R7oqlK8HM8LHlZnqzZijZdjlxIb5wl7/S6e6y
##################stripe\u516C\u94A5(\u4E0D\u52A0\u5BC6)\u548C\u79C1\u94A5(\u5DF2\u7528 AESUtils \u52A0\u5BC6)################################
##################stripe\u516C\u94A5(\u4E0D\u52A0\u5BC6)\u548C\u79C1\u94A5(\u5DF2\u7528 AESUtils \u52A0\u5BC6)################################
#stripe.pk=pk_live_5MdXU4N1cvmU1yatYp5v0E0n00C7tAXpGB
#stripe.pk=pk_live_5MdXU4N1cvmU1yatYp5v0E0n00C7tAXpGB
#stripe.sk=d87UqTQ6QUjuNkXrjH51Gl/Zqnfy98HRl23xljism2hpaXjSNTwdl6pv6FM7D4tT
#stripe.sk=d87UqTQ6QUjuNkXrjH51Gl/Zqnfy98HRl23xljism2hpaXjSNTwdl6pv6FM7D4tT
...
@@ -74,8 +76,8 @@ flutterwave.public.key=FLWPUBK-ee0f5d653f5f33fc89e6caf9de6a4c34-X
...
@@ -74,8 +76,8 @@ flutterwave.public.key=FLWPUBK-ee0f5d653f5f33fc89e6caf9de6a4c34-X
flutterwave.secret.key
=
FLWSECK-c06cdc19526077f3855b76045ca77de3-X
flutterwave.secret.key
=
FLWSECK-c06cdc19526077f3855b76045ca77de3-X
flutterwave.encryption.key
=
c06cdc1952600626ec8779ed
flutterwave.encryption.key
=
c06cdc1952600626ec8779ed
flutterwave.merchant.id
=
6577084
flutterwave.merchant.id
=
6577084
#################################flutterwave\u6D4B\u8BD5######################################################
#################################flutterwave\u6D4B\u8BD5
(TEST)
######################################################
#flutterwave.public.key=FLWPUBK_TEST-
fe034e806c47ab16cd85c4a8df1e1a0e
-X
#flutterwave.public.key=FLWPUBK_TEST-
e3cc948e7cb24b2128fca3b781f6fce0
-X
#flutterwave.secret.key=FLWSECK_TEST-f
7335806b11db9c42d2ef10847199f71
-X
#flutterwave.secret.key=FLWSECK_TEST-f
88371ca63a989a4af95625475a0d22d
-X
#flutterwave.encryption.key=FLWSECK_TEST
97c23ad56b5f
#flutterwave.encryption.key=FLWSECK_TEST
001d4c34f798
#flutterwave.merchant.id=
58765350
#flutterwave.merchant.id=
1508207
src/test/java/com/diaoyun/zion/PayTest.java
浏览文件 @
c21b8ab3
...
@@ -13,10 +13,15 @@ import com.google.gson.JsonArray;
...
@@ -13,10 +13,15 @@ import com.google.gson.JsonArray;
import
io.swagger.models.auth.In
;
import
io.swagger.models.auth.In
;
import
net.sf.json.JSONArray
;
import
net.sf.json.JSONArray
;
import
net.sf.json.JSONObject
;
import
net.sf.json.JSONObject
;
import
org.apache.http.Consts
;
import
org.junit.Test
;
import
org.junit.Test
;
import
springfox.documentation.spring.web.json.Json
;
import
springfox.documentation.spring.web.json.Json
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.net.MalformedURLException
;
import
java.net.URISyntaxException
;
import
java.net.URLDecoder
;
import
java.util.*
;
import
java.util.*
;
import
static
com
.
github
.
pagehelper
.
page
.
PageMethod
.
startPage
;
import
static
com
.
github
.
pagehelper
.
page
.
PageMethod
.
startPage
;
...
@@ -111,4 +116,15 @@ public class PayTest {
...
@@ -111,4 +116,15 @@ public class PayTest {
return
subList
;
return
subList
;
}
}
@Test
public
void
url
()
throws
MalformedURLException
,
URISyntaxException
,
UnsupportedEncodingException
{
String
url
=
"http://www.oschina.net/search?scope=bbs&q=C%E8%AF%AD%E8%A8%80"
;
String
targetUrl
=
URLDecoder
.
decode
(
url
,
"utf-8"
);
Map
<
String
,
String
>
paramMap
=
HttpClientUtil
.
getParamMap
(
targetUrl
);
System
.
out
.
println
(
paramMap
);
String
q
=
URLDecoder
.
decode
(
paramMap
.
get
(
"q"
),
"utf-8"
);
System
.
out
.
println
(
q
);
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论