Bläddra i källkod

积分赠送给分享人

541469799@qq.com 1 år sedan
förälder
incheckning
a9e6322302

+ 2 - 0
app/common/enum/order/PayType.php

@@ -29,8 +29,10 @@ class PayType extends EnumBasics
 
     // paypal支付
     const PAYPAL = 30;
+
     // stripe支付
     const STRIPE = 40;
+
     //积分支付
     const POINTS = 50;
 

+ 6 - 0
app/index/controller/Cart.php

@@ -15,6 +15,7 @@ namespace app\index\controller;
 use app\api\model\Cart as CartModel;
 use app\index\service\Cart as CartService;
 use app\common\exception\BaseException;
+use think\facade\Cache;
 use think\facade\Session;
 use think\response\Json;
 use think\View;
@@ -102,6 +103,11 @@ class Cart extends Controller
             return $this->renderJson(config('status.not_logged'), 'Log in please!');
         }
 
+        $key = $this->request->param('key',null);
+        if (!empty($key)){
+            Cache::set(\app\index\model\User::SHARE_PREFIX . $userId, $key,3600*24*30);
+        }
+
         $model = new CartModel;
         if (!$model->add($goodsId, $goodsSkuId, $goodsNum)) {
             return $this->renderError($model->getError() ?: '加入购物车失败');

+ 24 - 10
app/index/controller/Checkout.php

@@ -12,7 +12,9 @@ declare (strict_types=1);
 
 namespace app\index\controller;
 
+use app\index\model\Order;
 use app\index\model\Order as OrderModel;
+use app\index\model\User as UserModel;
 use app\index\service\order\PaySuccess;
 use app\index\service\User as UserService;
 use app\index\service\Cart as CartService;
@@ -175,8 +177,8 @@ class Checkout extends Controller
         $CartModel->clear($cartIds);
         // 构建微信支付请求
         $payment = $Checkout->onOrderPayment();
-        if ($params['payType'] == OrderPayTypeEnum::POINTS){
-            if (!$payment['flag']){
+        if ($params['payType'] == OrderPayTypeEnum::POINTS) {
+            if (!$payment['flag']) {
                 return $this->renderError($payment['message'] ?? '兑换失败');
             }
         }
@@ -194,17 +196,15 @@ class Checkout extends Controller
      */
     public function payPayExecutePay($orderNo, $token)
     {
-        if (empty($orderNo) || empty($token)){
-            return view('payError',['notice'=>lang('login success')]);
+        if (empty($orderNo) || empty($token)) {
+            return view('payError', ['notice' => lang('login success')]);
         }
 
         $oriToken = Cache::get(PayPal::PRE_STR . $orderNo);
-        if ($token != $oriToken){
-            return view('payError',['notice'=>lang('login success')]);
+        if ($token != $oriToken) {
+            return view('payError', ['notice' => lang('login success')]);
         }
 
-        //dd($orderNo);
-        //$paymentId = 'PAYID-MXUYFIQ9KF846046B114514M';
         $paymentId = $this->request->param('paymentId');
         //$token = $this->request->param('token');
         //$PayerID = $this->request->param('PayerID');
@@ -216,11 +216,25 @@ class Checkout extends Controller
             $orderModel = new PaySuccess($orderNo);
             $status = $orderModel->onPaySuccess(OrderPayTypeEnum::PAYPAL, ['transaction_id' => $paymentId]);
             if (!$status) {
-                return view('payError',['notice'=>lang('login success')]);
+                return view('payError', ['notice' => lang('login success')]);
             }
             Cache::delete(PayPal::PRE_STR . $orderNo);
         }
-        return view('paySuccessful',['notice'=>lang('login success')]);
+        //todo 等会测试
+/*        $order = Order::detail(['order_no' => $orderNo]);
+        //如果有分享人,给分享人送积分
+        if (isset($order['user_id'])) {
+            $key = Cache::get(UserModel::SHARE_PREFIX . $order['user_id']);
+            if (!empty($key)) {
+                $fromUserId = decrypt($key);
+
+                $describe = "好友消费赠送的积分";
+                $payPoints = intval(bcmul($order['pay_price'], '100', 0));
+                UserModel::setIncPoints(intval($fromUserId), -$payPoints, $describe);
+            }
+        }*/
+
+        return view('paySuccessful', ['notice' => lang('login success')]);
     }
 
     /**

+ 3 - 2
app/index/model/Order.php

@@ -122,11 +122,12 @@ class Order extends OrderModel
 
     protected function onPaymentByPaypal(self $order): array
     {
-        $conf = [
+/*        $conf = [
             'client_id' => 'AS0FH780ZGtSAdpT1NTjwkFzryCPf69rZb_FR9Rt_rZdasB80cmjqTQ6CQELWiFVh_MU9e31CSnyz7Ai',     // ClientID
             'secret' => 'EDqRQhgLNHCb5bxld98T8-JJJZKvMIeqxudO7lMwDFOxBfy138PjM5A21FnDNyb3q4yYUh8r7Qr2BnVi',      // ClientSecret
             'web_hook_id' => '3NP026061E6858914',
-        ];
+        ];*/
+        $conf = config('paypal');
         $pp = new PayPal($conf);
 
         return $pp->unify($order['order_no'], $order['pay_price']);

+ 1 - 0
app/index/model/User.php

@@ -26,6 +26,7 @@ use yiovo\captcha\facade\CaptchaApi;
  */
 class User extends UserModel
 {
+    public const SHARE_PREFIX = 'shared-key-';
     /**
      * 隐藏字段
      * @var array