Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
Z
zion
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
zhengfg
zion
Commits
f2d64b98
提交
f2d64b98
authored
11月 05, 2019
作者:
zgy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
手机注册,登录修改
上级
9f8b3749
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
151 行增加
和
29 行删除
+151
-29
pom.xml
pom.xml
+26
-0
LoginController.java
...m/diaoyun/zion/chinafrica/controller/LoginController.java
+1
-0
PayPalController.java
.../diaoyun/zion/chinafrica/controller/PayPalController.java
+5
-22
PayPalServiceImpl.java
...aoyun/zion/chinafrica/service/impl/PayPalServiceImpl.java
+24
-2
TbCfUserInfoServiceImpl.java
...zion/chinafrica/service/impl/TbCfUserInfoServiceImpl.java
+7
-4
PaypalConfig.java
...ain/java/com/diaoyun/zion/master/config/PaypalConfig.java
+45
-0
PaypalPaymentIntent.java
...a/com/diaoyun/zion/master/config/PaypalPaymentIntent.java
+7
-0
PaypalPaymentMethod.java
...a/com/diaoyun/zion/master/config/PaypalPaymentMethod.java
+5
-0
URLUtils.java
src/main/java/com/diaoyun/zion/master/util/URLUtils.java
+23
-0
PayTest.java
src/test/java/com/diaoyun/zion/PayTest.java
+8
-1
没有找到文件。
pom.xml
浏览文件 @
f2d64b98
...
...
@@ -256,6 +256,32 @@
<artifactId>
pay-java-paypal
</artifactId>
<version>
2.12.8
</version>
</dependency>
<dependency>
<groupId>
com.paypal.sdk
</groupId>
<artifactId>
rest-api-sdk
</artifactId>
<version>
1.4.2
</version>
</dependency>
<dependency>
<groupId>
javax.xml.bind
</groupId>
<artifactId>
jaxb-api
</artifactId>
<version>
2.3.0
</version>
</dependency>
<dependency>
<groupId>
com.sun.xml.bind
</groupId>
<artifactId>
jaxb-impl
</artifactId>
<version>
2.3.0
</version>
</dependency>
<dependency>
<groupId>
com.sun.xml.bind
</groupId>
<artifactId>
jaxb-core
</artifactId>
<version>
2.3.0
</version>
</dependency>
<dependency>
<groupId>
javax.activation
</groupId>
<artifactId>
activation
</artifactId>
<version>
1.1.1
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/diaoyun/zion/chinafrica/controller/LoginController.java
浏览文件 @
f2d64b98
...
...
@@ -77,6 +77,7 @@ public class LoginController extends BaseController {
tbCfUserInfoService
.
getUserPhoneCode
(
phone
);
return
new
Result
(
"Verification code has been sent"
);
}
@ApiOperation
(
"第三方登录"
)
@PostMapping
(
"/thirdParty"
)
// TODO
...
...
src/main/java/com/diaoyun/zion/chinafrica/controller/PayPalController.java
浏览文件 @
f2d64b98
...
...
@@ -34,34 +34,17 @@ public class PayPalController {
return
payPalService
.
payForOrder
(
orderId
);
}
@
Pos
tMapping
(
"/success"
)
@
Ge
tMapping
(
"/success"
)
public
Result
payForSuccess
(
HttpServletRequest
request
,
@RequestParam
(
"orderId"
)
String
orderId
){
return
payPalService
.
payForSuccess
(
request
,
orderId
);
}
@RequestMapping
(
"/testPay"
)
public
Result
testPay
(){
try
{
PayPalConfigStorage
storage
=
new
PayPalConfigStorage
();
storage
.
setClientID
(
"AWbyqn1AKJeVvzNsYms_9fs_LVr5_w5Xyt8nX5q0Wmqoq0NYCZf2wyz9DDeA5ArsWx0LFBwl5Oz6amD2"
);
storage
.
setClientSecret
(
"EFhRjCBzhtI1lf88Xiy3VF07gVpu1vWk0VheSP3n5J0fhQxA6Pu7j89dbyYTLj3FxqiJBOlxQRKG_58e"
);
//storage.setTest(true);
//发起付款后的页面转跳地址
storage
.
setReturnUrl
(
"http://127.0.0.1:8083/pay/success"
);
//取消按钮转跳地址,这里用异步通知地址的兼容的做法
storage
.
setNotifyUrl
(
"http://127.0.0.1:8083/pay/cancel"
);
HttpConfigStorage
httpConfigStorage
=
new
HttpConfigStorage
();
PayService
service
=
new
PayPalPayService
(
storage
);
BigDecimal
price
=
new
BigDecimal
(
"500"
);
PayOrder
order
=
new
PayOrder
(
"Order_payment:"
,
"Order payment"
,
price
,
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
),
PayPalTransactionType
.
sale
);
Map
orderInfo
=
service
.
orderInfo
(
order
);
service
.
buildRequest
(
orderInfo
,
MethodType
.
POST
);
}
catch
(
Exception
e
){
return
new
Result
().
setMessage
(
e
.
getMessage
());
}
return
new
Result
().
setMessage
(
"付款成功!"
);
@GetMapping
(
"/cancel"
)
public
Result
cancelPay
(){
return
new
Result
().
setMessage
(
"订单支付已取消"
);
}
}
src/main/java/com/diaoyun/zion/chinafrica/service/impl/PayPalServiceImpl.java
浏览文件 @
f2d64b98
package
com
.
diaoyun
.
zion
.
chinafrica
.
service
.
impl
;
import
com.diaoyun.zion.chinafrica.constant.KeyConstant
;
import
com.diaoyun.zion.chinafrica.dao.TbCfOrderDao
;
import
com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity
;
import
com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum
;
import
com.diaoyun.zion.chinafrica.enums.OrderStatusEnum
;
import
com.diaoyun.zion.chinafrica.service.PayPalService
;
import
com.diaoyun.zion.chinafrica.vo.TbCfOrderVo
;
import
com.diaoyun.zion.master.base.Result
;
...
...
@@ -25,6 +29,7 @@ import javax.annotation.Resource;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.UUID
;
...
...
@@ -35,6 +40,8 @@ public class PayPalServiceImpl implements PayPalService {
@Resource
private
RedisCache
<
Object
>
orderRedisCache
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
TbCfOrderServiceImpl
.
class
);
@Autowired
private
TbCfOrderDao
tbCfOrderDao
;
@Override
@Transactional
...
...
@@ -57,8 +64,10 @@ public class PayPalServiceImpl implements PayPalService {
BigDecimal
realityPay
=
tbCfOrderVo
.
getRealityPay
();
PayOrder
order
=
new
PayOrder
(
"Order_payment:"
,
"Order payment"
,
realityPay
,
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
),
PayPalTransactionType
.
sale
);
Map
orderInfo
=
service
.
orderInfo
(
order
);
service
.
buildRequest
(
orderInfo
,
MethodType
.
POST
);
result
.
setMessage
(
ResultCodeEnum
.
SUCCESS
.
getDesc
());
String
request
=
service
.
buildRequest
(
orderInfo
,
MethodType
.
POST
);
result
.
setData
(
request
);
}
else
{
result
.
setCode
(
ResultCodeEnum
.
SERVICE_ERROR
.
getCode
()).
setMessage
(
"订单不存在!"
);
}
}
catch
(
Exception
e
)
{
result
.
setCode
(
ResultCodeEnum
.
SERVICE_ERROR
.
getCode
()).
setMessage
(
e
.
getMessage
());
...
...
@@ -109,4 +118,17 @@ public class PayPalServiceImpl implements PayPalService {
String
orderIdAndCouponId
=
tbCfOrderVo
.
getOrderId
()
+
":"
+
tbCfOrderVo
.
getUserId
()
+
":"
+
couponId
;
orderRedisCache
.
delete
(
KeyConstant
.
ORDER_EXP
+
orderIdAndCouponId
);
}
private
void
changeOrderState
(
String
payId
,
TbCfOrderVo
oldOrder
)
{
//更改订单状态
TbCfOrderEntity
tbCfOrder
=
new
TbCfOrderEntity
();
tbCfOrder
.
setOrderId
(
oldOrder
.
getOrderId
());
tbCfOrder
.
setUpdateTime
(
new
Date
());
tbCfOrder
.
setDealTime
(
new
Date
());
tbCfOrder
.
setOrderStatus
(
OrderStatusEnum
.
PAID
.
getValue
());
tbCfOrder
.
setDeliveryFlag
(
DeliveryStatusEnum
.
PROCESSING
.
getValue
());
tbCfOrder
.
setPayId
(
payId
);
tbCfOrder
.
setPayStatus
(
OrderStatusEnum
.
PAID
.
getValue
());
tbCfOrderDao
.
update
(
tbCfOrder
);
}
}
src/main/java/com/diaoyun/zion/chinafrica/service/impl/TbCfUserInfoServiceImpl.java
浏览文件 @
f2d64b98
...
...
@@ -214,9 +214,10 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
@Override
public
Result
<
TbCfUserInfoVo
>
registerByPhone
(
TbCfUserInfoVo
tbCfUserInfoVo
,
String
code
)
{
String
phone
=
"+"
+
tbCfUserInfoVo
.
getPhone
();
Result
result
=
new
Result
();
TbCfUserInfoEntity
user
=
tbCfUserInfoDao
.
checkUserByPhone
(
tbCfUserInfoVo
.
getPhone
()
);
String
phoneCode
=
(
String
)
captchaRedisCache
.
get
(
KeyConstant
.
CAPTCHA_PHONE
+
tbCfUserInfoVo
.
getPhone
()
);
TbCfUserInfoEntity
user
=
tbCfUserInfoDao
.
checkUserByPhone
(
phone
);
String
phoneCode
=
(
String
)
captchaRedisCache
.
get
(
KeyConstant
.
CAPTCHA_PHONE
+
phone
);
if
(
code
==
null
||!
code
.
equals
(
phoneCode
)){
result
.
setCode
(
ResultCodeEnum
.
VALIDATE_ERROR
.
getCode
());
result
.
setMessage
(
"Verification code error"
);
...
...
@@ -230,6 +231,7 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
tbCfUserInfoVo
.
setNick
(
nick
);
tbCfUserInfoVo
.
setAccount
(
tbCfUserInfoVo
.
getPhone
());
tbCfUserInfoVo
.
setUserType
(
UserTypeEnum
.
PHONE
.
getCode
());
tbCfUserInfoVo
.
setPhone
(
phone
);
fillUserNecessayInfo
(
tbCfUserInfoVo
);
//加密密码
String
password
=
passwordEncoder
.
encode
(
tbCfUserInfoVo
.
getPassword
());
...
...
@@ -279,7 +281,7 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
}
}
public
Result
loginByPhone
(
String
ip
,
String
phoneNum
,
String
code
){
String
phone
=
phoneNum
.
trim
();
String
phone
=
"+"
+
phoneNum
.
trim
();
Result
result
=
new
Result
();
TbCfUserInfoEntity
user
=
tbCfUserInfoDao
.
checkUserByPhone
(
phone
);
String
phoneCode
=
(
String
)
captchaRedisCache
.
get
(
KeyConstant
.
CAPTCHA_PHONE
+
phone
);
...
...
@@ -294,9 +296,10 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
}
public
String
getUserPhoneCode
(
String
phone
)
throws
IOException
{
phone
=
"+"
+
phone
.
trim
();
SMSUtil
smsUtil
=
new
SMSUtil
();
String
code
=
smsUtil
.
yzCode
(
phone
);
captchaRedisCache
.
set
(
KeyConstant
.
CAPTCHA_PHONE
+
phone
,
code
,
18
00
);
captchaRedisCache
.
set
(
KeyConstant
.
CAPTCHA_PHONE
+
phone
,
code
,
3
00
);
return
code
;
}
/**
...
...
src/main/java/com/diaoyun/zion/master/config/PaypalConfig.java
0 → 100644
浏览文件 @
f2d64b98
package
com
.
diaoyun
.
zion
.
master
.
config
;
import
com.paypal.base.rest.APIContext
;
import
com.paypal.base.rest.OAuthTokenCredential
;
import
com.paypal.base.rest.PayPalRESTException
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.HashMap
;
import
java.util.Map
;
@Configuration
public
class
PaypalConfig
{
@Value
(
"${paypal.client.app}"
)
private
String
clientId
;
@Value
(
"${paypal.client.secret}"
)
private
String
clientSecret
;
@Value
(
"${paypal.mode}"
)
private
String
mode
;
@Bean
public
Map
<
String
,
String
>
paypalSdkConfig
(){
Map
<
String
,
String
>
sdkConfig
=
new
HashMap
<>();
sdkConfig
.
put
(
"mode"
,
mode
);
return
sdkConfig
;
}
@Bean
public
OAuthTokenCredential
authTokenCredential
(){
return
new
OAuthTokenCredential
(
clientId
,
clientSecret
,
paypalSdkConfig
());
}
/**
* 这里不能用Bean注入(Bean注入只有一个实例会出现订单请求图重复的问题)
* @return
* @throws PayPalRESTException
*/
public
APIContext
apiContext
()
throws
PayPalRESTException
{
APIContext
apiContext
=
new
APIContext
(
authTokenCredential
().
getAccessToken
());
apiContext
.
setConfigurationMap
(
paypalSdkConfig
());
return
apiContext
;
}
}
src/main/java/com/diaoyun/zion/master/config/PaypalPaymentIntent.java
0 → 100644
浏览文件 @
f2d64b98
package
com
.
diaoyun
.
zion
.
master
.
config
;
public
enum
PaypalPaymentIntent
{
sale
,
authorize
,
order
}
\ No newline at end of file
src/main/java/com/diaoyun/zion/master/config/PaypalPaymentMethod.java
0 → 100644
浏览文件 @
f2d64b98
package
com
.
diaoyun
.
zion
.
master
.
config
;
public
enum
PaypalPaymentMethod
{
credit_card
,
paypal
}
\ No newline at end of file
src/main/java/com/diaoyun/zion/master/util/URLUtils.java
0 → 100644
浏览文件 @
f2d64b98
package
com
.
diaoyun
.
zion
.
master
.
util
;
import
javax.servlet.http.HttpServletRequest
;
public
class
URLUtils
{
public
static
String
getBaseURl
(
HttpServletRequest
request
)
{
String
scheme
=
request
.
getScheme
();
String
serverName
=
request
.
getServerName
();
int
serverPort
=
request
.
getServerPort
();
String
contextPath
=
request
.
getContextPath
();
StringBuffer
url
=
new
StringBuffer
();
url
.
append
(
scheme
).
append
(
"://"
).
append
(
serverName
);
if
((
serverPort
!=
80
)
&&
(
serverPort
!=
443
))
{
url
.
append
(
":"
).
append
(
serverPort
);
}
url
.
append
(
contextPath
);
if
(
url
.
toString
().
endsWith
(
"/"
)){
url
.
append
(
"/"
);
}
return
url
.
toString
();
}
}
\ No newline at end of file
src/test/java/com/diaoyun/zion/PayTest.java
浏览文件 @
f2d64b98
...
...
@@ -8,6 +8,7 @@ import com.egzosn.pay.common.http.HttpConfigStorage;
import
com.egzosn.pay.paypal.api.PayPalConfigStorage
;
import
com.egzosn.pay.paypal.api.PayPalPayService
;
import
com.egzosn.pay.paypal.bean.PayPalTransactionType
;
import
com.paypal.api.payments.Links
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -27,6 +28,7 @@ import java.util.UUID;
public
class
PayTest
{
public
static
void
main
(
String
[]
args
)
{
PayPalConfigStorage
storage
=
new
PayPalConfigStorage
();
storage
.
setClientID
(
"AWbyqn1AKJeVvzNsYms_9fs_LVr5_w5Xyt8nX5q0Wmqoq0NYCZf2wyz9DDeA5ArsWx0LFBwl5Oz6amD2"
);
storage
.
setClientSecret
(
"EFhRjCBzhtI1lf88Xiy3VF07gVpu1vWk0VheSP3n5J0fhQxA6Pu7j89dbyYTLj3FxqiJBOlxQRKG_58e"
);
...
...
@@ -41,6 +43,11 @@ public class PayTest {
BigDecimal
price
=
new
BigDecimal
(
"500"
);
PayOrder
order
=
new
PayOrder
(
"Order_payment:"
,
"Order payment"
,
price
,
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
),
PayPalTransactionType
.
sale
);
Map
orderInfo
=
service
.
orderInfo
(
order
);
service
.
buildRequest
(
orderInfo
,
MethodType
.
POST
);
String
request
=
service
.
buildRequest
(
orderInfo
,
MethodType
.
POST
);
System
.
out
.
println
(
request
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论