提交 2bd473d3 authored 作者: zgy's avatar zgy

修改bug

上级 fec9355f
...@@ -298,6 +298,12 @@ ...@@ -298,6 +298,12 @@
<groupId>us.codecraft</groupId> <groupId>us.codecraft</groupId>
<artifactId>webmagic-core</artifactId> <artifactId>webmagic-core</artifactId>
<version>0.7.3</version> <version>0.7.3</version>
<exclusions>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>us.codecraft</groupId> <groupId>us.codecraft</groupId>
......
...@@ -46,7 +46,8 @@ public class TokenVerification { ...@@ -46,7 +46,8 @@ public class TokenVerification {
"&&!execution(* com.diaoyun.zion.chinafrica.controller.GoodsTypeController.*(..))"+ "&&!execution(* com.diaoyun.zion.chinafrica.controller.GoodsTypeController.*(..))"+
"&&!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.TbCfOrderController.*(..))" "&&!execution(* com.diaoyun.zion.chinafrica.controller.TbCfOrderController.*(..))"+
"&&!execution(* com.diaoyun.zion.chinafrica.controller.PayPalController.*(..))"
) )
public void controllerAspect() { public void controllerAspect() {
......
package com.diaoyun.zion.chinafrica.controller; package com.diaoyun.zion.chinafrica.controller;
import com.diaoyun.zion.chinafrica.service.PayPalService; import com.diaoyun.zion.chinafrica.service.PayPalService;
import com.diaoyun.zion.chinafrica.vo.PayPalResult;
import com.diaoyun.zion.master.base.Result; import com.diaoyun.zion.master.base.Result;
import com.egzosn.pay.common.api.PayService; import com.egzosn.pay.common.api.PayService;
import com.egzosn.pay.common.bean.MethodType; import com.egzosn.pay.common.bean.MethodType;
...@@ -28,23 +29,51 @@ public class PayPalController { ...@@ -28,23 +29,51 @@ public class PayPalController {
@Autowired @Autowired
private PayPalService payPalService; private PayPalService payPalService;
@PostMapping ("/pay") /**
public Result payForOrder(@RequestParam("orderId") String orderId){ * 发起支付
*
* @param orderId
* @return
*/
@PostMapping("/pay")
public Result payForOrder(@RequestParam("orderId") String orderId) {
return payPalService.payForOrder(orderId); return payPalService.payForOrder(orderId);
} }
/**
* 支付成功的回调
*
* @param request
* @return
*/
@GetMapping("/success") @GetMapping("/success")
public Result payForSuccess(HttpServletRequest request,@RequestParam("orderId") String orderId){ public Result payForSuccess(HttpServletRequest request) {
return payPalService.payForSuccess(request,orderId); return payPalService.payForSuccess(request);
} }
/**
* 取消支付
*
* @return
*/
@GetMapping("/cancel") @GetMapping("/cancel")
public Result cancelPay(){ public Result cancelPay() {
return new Result().setMessage("订单支付已取消"); return new Result().setMessage("订单支付已取消");
} }
/**
* 退款
* @param orderId
* @param payId
* @return
*/
@GetMapping("/refund")
public Result refund(@RequestParam("payId") String payId,@RequestParam("orderId") String orderId) {
return payPalService.refund(payId, orderId);
}
} }
package com.diaoyun.zion.chinafrica.service; package com.diaoyun.zion.chinafrica.service;
import com.diaoyun.zion.master.base.Result; import com.diaoyun.zion.master.base.Result;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
public interface PayPalService { public interface PayPalService {
public Result payForOrder( String orderId); public Result payForOrder(String orderId);
public Result payForSuccess(HttpServletRequest request,String orderId); public Result payForSuccess(HttpServletRequest request);
Result refund(String payId, String orderId);
} }
package com.diaoyun.zion.chinafrica.service.impl; package com.diaoyun.zion.chinafrica.service.impl;
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.TbCfIssueCouponDao;
import com.diaoyun.zion.chinafrica.dao.TbCfOrderDao; import com.diaoyun.zion.chinafrica.dao.TbCfOrderDao;
import com.diaoyun.zion.chinafrica.entity.TbCfFinanceEntity;
import com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity; import com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity;
import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum; import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum;
import com.diaoyun.zion.chinafrica.enums.OrderStatusEnum; import com.diaoyun.zion.chinafrica.enums.OrderStatusEnum;
import com.diaoyun.zion.chinafrica.service.PayPalService; import com.diaoyun.zion.chinafrica.service.PayPalService;
import com.diaoyun.zion.chinafrica.vo.PayPalResult;
import com.diaoyun.zion.chinafrica.vo.TbCfFinanceVo;
import com.diaoyun.zion.chinafrica.vo.TbCfOrderVo; import com.diaoyun.zion.chinafrica.vo.TbCfOrderVo;
import com.diaoyun.zion.master.base.Result; import com.diaoyun.zion.master.base.Result;
import com.diaoyun.zion.master.common.RedisCache; import com.diaoyun.zion.master.common.RedisCache;
import com.diaoyun.zion.master.config.DomainProperties; import com.diaoyun.zion.master.config.DomainProperties;
import com.diaoyun.zion.master.enums.ResultCodeEnum; import com.diaoyun.zion.master.enums.ResultCodeEnum;
import com.diaoyun.zion.master.util.IdUtil;
import com.diaoyun.zion.master.util.JsoupUtil;
import com.egzosn.pay.common.api.PayService; import com.egzosn.pay.common.api.PayService;
import com.egzosn.pay.common.bean.MethodType; import com.egzosn.pay.common.bean.MethodType;
import com.egzosn.pay.common.bean.PayOrder; import com.egzosn.pay.common.bean.PayOrder;
import com.egzosn.pay.common.bean.RefundOrder;
import com.egzosn.pay.common.http.HttpConfigStorage; import com.egzosn.pay.common.http.HttpConfigStorage;
import com.egzosn.pay.paypal.api.PayPalConfigStorage; import com.egzosn.pay.paypal.api.PayPalConfigStorage;
import com.egzosn.pay.paypal.api.PayPalPayService; import com.egzosn.pay.paypal.api.PayPalPayService;
import com.egzosn.pay.paypal.bean.PayPalTransactionType; import com.egzosn.pay.paypal.bean.PayPalTransactionType;
import com.stripe.model.Charge;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -34,7 +44,10 @@ import java.util.Map; ...@@ -34,7 +44,10 @@ import java.util.Map;
import java.util.UUID; import java.util.UUID;
@Service("payPalService") @Service("payPalService")
@Transactional
public class PayPalServiceImpl implements PayPalService { public class PayPalServiceImpl implements PayPalService {
@Autowired
private TbCfFinanceDao tbCfFinanceDao;
@Autowired @Autowired
private DomainProperties domainProperties; private DomainProperties domainProperties;
@Resource @Resource
...@@ -42,16 +55,20 @@ public class PayPalServiceImpl implements PayPalService { ...@@ -42,16 +55,20 @@ public class PayPalServiceImpl implements PayPalService {
private static Logger logger = LoggerFactory.getLogger(TbCfOrderServiceImpl.class); private static Logger logger = LoggerFactory.getLogger(TbCfOrderServiceImpl.class);
@Autowired @Autowired
private TbCfOrderDao tbCfOrderDao; private TbCfOrderDao tbCfOrderDao;
@Autowired
private TbCfIssueCouponDao tbCfIssueCouponDao;
private String ORDER_ID = "";
@Override @Override
@Transactional
public Result payForOrder(String orderId) { public Result payForOrder(String orderId) {
Result result = new Result(); ORDER_ID = orderId;
PayPalConfigStorage storage = new PayPalConfigStorage(); PayPalConfigStorage storage = new PayPalConfigStorage();
Result result = new Result();
storage.setClientID(domainProperties.getProperty("paypal.client.app")); storage.setClientID(domainProperties.getProperty("paypal.client.app"));
storage.setClientSecret(domainProperties.getProperty("paypal.client.secret")); storage.setClientSecret(domainProperties.getProperty("paypal.client.secret"));
//storage.setTest(true);
//发起付款后的页面转跳地址 //发起付款后的页面转跳地址
storage.setTest(true);
storage.setReturnUrl(domainProperties.getProperty("paypal.success.url")); storage.setReturnUrl(domainProperties.getProperty("paypal.success.url"));
//取消按钮转跳地址,这里用异步通知地址的兼容的做法 //取消按钮转跳地址,这里用异步通知地址的兼容的做法
storage.setNotifyUrl(domainProperties.getProperty("paypal.cancel.url")); storage.setNotifyUrl(domainProperties.getProperty("paypal.cancel.url"));
...@@ -62,10 +79,17 @@ public class PayPalServiceImpl implements PayPalService { ...@@ -62,10 +79,17 @@ public class PayPalServiceImpl implements PayPalService {
try { try {
if (tbCfOrderVo != null) { if (tbCfOrderVo != null) {
BigDecimal realityPay = tbCfOrderVo.getRealityPay(); BigDecimal realityPay = tbCfOrderVo.getRealityPay();
PayOrder order = new PayOrder("Order_payment:", "Order payment", realityPay, UUID.randomUUID().toString().replace("-", ""), PayPalTransactionType.sale); PayOrder order = new PayOrder("Order_payment:", "tbCfOrderVo.getUserName()+\"'s order,the total price is $\"+tbCfOrderVo.getRealityPay()", realityPay, UUID.randomUUID().toString().replace("-", ""), PayPalTransactionType.sale);
Map orderInfo = service.orderInfo(order); Map orderInfo = service.orderInfo(order);
String request = service.buildRequest(orderInfo, MethodType.POST); Map<String, String> orderHref = JsoupUtil.getOrderHref(orderInfo.toString());
result.setData(request); System.out.println(orderHref.get("approval_url"));
String url = orderHref.get("approval_url");
PayPalResult palResult = new PayPalResult();
palResult.setOrderId(orderId);
palResult.setPayId((String) orderInfo.get("id"));
palResult.setPaypalUrl(url);
palResult.setOrderDesc(tbCfOrderVo.getUserName() + "'s order,the total price is $" + tbCfOrderVo.getRealityPay());
result.setData(palResult);
} else { } else {
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage("订单不存在!"); result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage("订单不存在!");
} }
...@@ -78,37 +102,90 @@ public class PayPalServiceImpl implements PayPalService { ...@@ -78,37 +102,90 @@ public class PayPalServiceImpl implements PayPalService {
} }
@Override @Override
public Result payForSuccess(HttpServletRequest request, String orderId) { public Result payForSuccess(HttpServletRequest request) {
Result result = new Result(); Result result = new Result();
PayPalConfigStorage storage = new PayPalConfigStorage(); PayPalConfigStorage storage = new PayPalConfigStorage();
storage.setClientID(domainProperties.getProperty("paypal.client.app")); storage.setClientID(domainProperties.getProperty("paypal.client.app"));
storage.setClientSecret(domainProperties.getProperty("paypal.client.secret")); storage.setClientSecret(domainProperties.getProperty("paypal.client.secret"));
//storage.setTest(true); storage.setTest(true);
//发起付款后的页面转跳地址
storage.setReturnUrl(domainProperties.getProperty("paypal.success.url"));
//取消按钮转跳地址,这里用异步通知地址的兼容的做法
storage.setNotifyUrl(domainProperties.getProperty("paypal.cancel.url"));
HttpConfigStorage httpConfigStorage = new HttpConfigStorage();
PayService service = new PayPalPayService(storage); PayService service = new PayPalPayService(storage);
Map<String, Object> params = null; Map<String, Object> params = null;
TbCfOrderVo tbCfOrderVo = (TbCfOrderVo) orderRedisCache.get(KeyConstant.ORDER_DET + orderId);
try { try {
params = service.getParameter2Map(request.getParameterMap(), request.getInputStream()); params = service.getParameter2Map(request.getParameterMap(), request.getInputStream());
String payerID = (String) params.get("PayerID");
String paymentId = (String) params.get("paymentId");
String token = (String) params.get("token");
if (service.verify(params)) { if (service.verify(params)) {
System.out.println("支付成功"); System.out.println("支付成功");
result.setData("支付成功"); result.setMessage("支付成功");
removeRedisCache(tbCfOrderVo); } else {
result.setMessage("支付失败");
}
if (ORDER_ID != null) {
TbCfOrderVo tbCfOrderVo = (TbCfOrderVo) orderRedisCache.get(KeyConstant.ORDER_DET + ORDER_ID);
if (tbCfOrderVo != null) {
//修改订单状态
changeOrderState(paymentId, tbCfOrderVo);
//修改优惠券状态
if (tbCfOrderVo.getCouponId() != null && tbCfOrderVo.getOrderStatus() == 20) {
tbCfIssueCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
}
//生成支付流水
TbCfFinanceEntity finance = createFinance(paymentId, token, payerID, tbCfOrderVo);
TbCfFinanceVo tbCfFinanceVo = new TbCfFinanceVo();
BeanUtils.copyProperties(finance, tbCfFinanceVo);
//清除订单
removeRedisCache(tbCfOrderVo);
}
} }
} catch (IOException e) { } catch (IOException e) {
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage(e.getMessage()); result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage(e.getMessage());
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
return result; return result;
} }
return result;
}
/**
* 退款
*
* @param orderId
* @param payId
* @return
*/
@Override
public Result refund(String payId, String orderId) {
Result result = new Result();
PayPalConfigStorage storage = new PayPalConfigStorage();
storage.setClientID(domainProperties.getProperty("paypal.client.app"));
storage.setClientSecret(domainProperties.getProperty("paypal.client.secret"));
storage.setTest(true);
try {
PayService service = new PayPalPayService(storage);
TbCfOrderEntity tbCfOrderEntity = tbCfOrderDao.queryObject(orderId);
RefundOrder order = new RefundOrder();
order.setDescription("退款");
order.setTradeNo(payId);
order.setRefundAmount(tbCfOrderEntity.getTotalPrice());
Map resultMap = service.refund(order);
result.setData(resultMap).setCode(1).setMessage("退款成功");
} catch (Exception e) {
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage(e.getMessage());
logger.error(e.getMessage(), e);
return result;
}
return result; return result;
} }
/**
* 清空订单缓存
*
* @param tbCfOrderVo
*/
private void removeRedisCache(TbCfOrderVo tbCfOrderVo) { private void removeRedisCache(TbCfOrderVo tbCfOrderVo) {
orderRedisCache.delete(KeyConstant.ORDER_DET + tbCfOrderVo.getOrderId()); orderRedisCache.delete(KeyConstant.ORDER_DET + tbCfOrderVo.getOrderId());
String couponId = ""; String couponId = "";
...@@ -119,6 +196,12 @@ public class PayPalServiceImpl implements PayPalService { ...@@ -119,6 +196,12 @@ public class PayPalServiceImpl implements PayPalService {
orderRedisCache.delete(KeyConstant.ORDER_EXP + orderIdAndCouponId); orderRedisCache.delete(KeyConstant.ORDER_EXP + orderIdAndCouponId);
} }
/**
* 修改订单状态
*
* @param payId
* @param oldOrder
*/
private void changeOrderState(String payId, TbCfOrderVo oldOrder) { private void changeOrderState(String payId, TbCfOrderVo oldOrder) {
//更改订单状态 //更改订单状态
TbCfOrderEntity tbCfOrder = new TbCfOrderEntity(); TbCfOrderEntity tbCfOrder = new TbCfOrderEntity();
...@@ -131,4 +214,26 @@ public class PayPalServiceImpl implements PayPalService { ...@@ -131,4 +214,26 @@ public class PayPalServiceImpl implements PayPalService {
tbCfOrder.setPayStatus(OrderStatusEnum.PAID.getValue()); tbCfOrder.setPayStatus(OrderStatusEnum.PAID.getValue());
tbCfOrderDao.update(tbCfOrder); tbCfOrderDao.update(tbCfOrder);
} }
/**
* 记录财务流水
*
* @param
* @param tbCfOrderVo
*/
private TbCfFinanceEntity createFinance(String paymentId, String token, String payerId, TbCfOrderVo tbCfOrderVo) {
TbCfFinanceEntity tbCfFinance = new TbCfFinanceEntity();
String successUrl = domainProperties.getProperty("paypal.success.url");
String receiptUrl = successUrl + "?paymentId=" + paymentId + "&token=" + token + "&PayerID=" + payerId;
tbCfFinance.setOrderId(tbCfOrderVo.getOrderId());
tbCfFinance.setFinaceId(IdUtil.createIdbyUUID());
tbCfFinance.setPayAccount(tbCfOrderVo.getRealityPay());
tbCfFinance.setPayId(paymentId);
tbCfFinance.setPayTime(new Date());
tbCfFinance.setReceiptUrl(receiptUrl);
tbCfFinance.setPayWayCode("paypal");
tbCfFinance.setUserId(tbCfOrderVo.getUserId());
tbCfFinanceDao.save(tbCfFinance);
return tbCfFinance;
}
} }
package com.diaoyun.zion.chinafrica.vo;
/**
* 支付返回类
*/
public class PayPalResult {
//订单id
private String orderId;
//支付id
private String payId;
//paypal回调url
private String paypalUrl;
//订单描述
private String orderDesc;
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getPayId() {
return payId;
}
public void setPayId(String payId) {
this.payId = payId;
}
public String getPaypalUrl() {
return paypalUrl;
}
public void setPaypalUrl(String paypalUrl) {
this.paypalUrl = paypalUrl;
}
public String getOrderDesc() {
return orderDesc;
}
public void setOrderDesc(String orderDesc) {
this.orderDesc = orderDesc;
}
}
...@@ -34,10 +34,14 @@ tencent.translate.app_url=https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate ...@@ -34,10 +34,14 @@ 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
################腾讯翻译配置 END################### ################腾讯翻译配置 END###################
##################新11.05(stripe公钥(不加密)和私钥(已用 AESUtils 加密))################################
stripe.pk=pk_live_FP6ipnw3lt0e1AmS5IVdpJWd00s5PLdbVa
stripe.sk=YWA9aMOPvCfq0KWda2Wsh567lLl600+QK/X8ZEFDPj6UDNd3icKr6fJ+X3ey8X+T
#stripe.pk=pk_test_y5dXLjyUyBD11Ta9g2DGynxN0048vnmpGz
#stripe.sk=+RFm7p84hym4liN1/MSoshYMiy4rWgUFoZ3S5+ucxRTyzblQL2Pi0y1TDQoSE96z
##################stripe公钥(不加密)和私钥(已用 AESUtils 加密)################################ ##################stripe公钥(不加密)和私钥(已用 AESUtils 加密)################################
stripe.pk=pk_live_5MdXU4N1cvmU1yatYp5v0E0n00C7tAXpGB #stripe.pk=pk_live_5MdXU4N1cvmU1yatYp5v0E0n00C7tAXpGB
stripe.sk=d87UqTQ6QUjuNkXrjH51Gl/Zqnfy98HRl23xljism2hpaXjSNTwdl6pv6FM7D4tT #stripe.sk=d87UqTQ6QUjuNkXrjH51Gl/Zqnfy98HRl23xljism2hpaXjSNTwdl6pv6FM7D4tT
#stripe.pk=pk_test_rXUSgU8Kw7DLhDzMbHM0r55O00JAzVBBJR #stripe.pk=pk_test_rXUSgU8Kw7DLhDzMbHM0r55O00JAzVBBJR
#stripe.sk=3ff57yz9S5INBexBOnzi/ZaxClXkXlJ+FZ6XLc/f2vpESScG7YOaQaG2YNRic3HF #stripe.sk=3ff57yz9S5INBexBOnzi/ZaxClXkXlJ+FZ6XLc/f2vpESScG7YOaQaG2YNRic3HF
######################outlook的账户公钥密钥##################### ######################outlook的账户公钥密钥#####################
...@@ -54,7 +58,13 @@ express.info.token=d44426bd5b64dd2 ...@@ -54,7 +58,13 @@ express.info.token=d44426bd5b64dd2
#paypal.client.app=AW7u5JVLhzA7_0EznoZ7uKHFzz1_nACOtt6k9oEpbisGUy3nqjjb3L-MmBFnD3YDuMSapcXpfSiYWtiB #paypal.client.app=AW7u5JVLhzA7_0EznoZ7uKHFzz1_nACOtt6k9oEpbisGUy3nqjjb3L-MmBFnD3YDuMSapcXpfSiYWtiB
#paypal.client.secret=EIyDryMDyM0BDWp2mtuGFdSU2WOkWtmSuGGaRnUiIom7kxuM7JhuSFfETbC8X4e9E_ZbMX4zg4jHA1lV #paypal.client.secret=EIyDryMDyM0BDWp2mtuGFdSU2WOkWtmSuGGaRnUiIom7kxuM7JhuSFfETbC8X4e9E_ZbMX4zg4jHA1lV
paypal.mode=live paypal.mode=live
paypal.client.app=AWbyqn1AKJeVvzNsYms_9fs_LVr5_w5Xyt8nX5q0Wmqoq0NYCZf2wyz9DDeA5ArsWx0LFBwl5Oz6amD2 #################################真实######################################################
paypal.client.secret=EFhRjCBzhtI1lf88Xiy3VF07gVpu1vWk0VheSP3n5J0fhQxA6Pu7j89dbyYTLj3FxqiJBOlxQRKG_58e #paypal.client.app=AUUFVT30kPIP-a7dcQfPS8KYdl5cCZIwyYNIS79Cp7E_0GNZWfut3ZHQiRIoamqRstHigMoTTy1n8Glj
paypal.success.url=http://127.0.0.1:8083/paypal/success #paypal.client.secret=EJBVz86f9Mg482bL3lniPtLYe_ULyBkjTS0q-qhZBIVFC3dgae-J7-JJA5iWQAZsQqtAOV_ctVGWNLJS
paypal.cancel.url=http://127.0.0.1:8083/paypal/cancel #################################测试######################################################
\ No newline at end of file paypal.client.app=AW7u5JVLhzA7_0EznoZ7uKHFzz1_nACOtt6k9oEpbisGUy3nqjjb3L-MmBFnD3YDuMSapcXpfSiYWtiB
paypal.client.secret=EIyDryMDyM0BDWp2mtuGFdSU2WOkWtmSuGGaRnUiIom7kxuM7JhuSFfETbC8X4e9E_ZbMX4zg4jHA1lV
#paypal.success.url=https://africa.gzdazt.com/zion/paypal/success
#paypal.cancel.url=https://africa.gzdazt.com/zion/paypal/cancel
paypal.success.url=http://localhost:8083/zion/paypal/success
paypal.cancel.url=http://localhost:8083/zion/paypal/cancel
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论