Parcourir la source

快应用改版

onlinetest il y a 5 ans
Parent
commit
4110c80df1

+ 19 - 5
app/Http/Controllers/QuickApp/BaseController.php

@@ -2,15 +2,19 @@
 
 namespace App\Http\Controllers\QuickApp;
 
+use App\Modules\User\Models\User;
 use App\Modules\User\Services\QappUserService;
 use Illuminate\Routing\Controller;
 
 /**
- * @property $user_info 用户基本信息
- * @property $uid 
- * @property $phone 手机号
- * @property $distribution_channel_id 渠道号ID
- * @property $send_order_id 派单ID
+ * @property User $user_info 用户基本信息
+ * @property int $uid 
+ * @property string $phone 手机号
+ * @property int $distribution_channel_id 渠道号ID
+ * @property int $send_order_id 派单ID
+ * @property int $app_pay_merchat_id 微信app支付通道ID
+ * @property int $h5_pay_merchat_id 微信h5支付通道ID
+ * @property int $ali_pay_merchat_id 支付宝支付通道ID
  */
 class BaseController extends Controller
 {
@@ -18,6 +22,7 @@ class BaseController extends Controller
 
     public function __get($name)
     {
+
         if (!isset($this->field[$name])) {
             // QappUserService::setGolableUserStatic(env('QUICKAPP_TEST_UID',162261523));
             $qapp_user = QappUserService::getGolableUserStatic();
@@ -36,6 +41,15 @@ class BaseController extends Controller
             if ($name == 'send_order_id') {
                 $this->field[$name] = $qapp_user->send_order_id;
             }
+            if ($name == 'app_pay_merchat_id') {
+                $this->field[$name] = $qapp_user->app_pay_merchat_id;
+            }
+            if ($name == 'h5_pay_merchat_id') {
+                $this->field[$name] = $qapp_user->h5_pay_merchat_id;
+            }
+            if ($name == 'ali_pay_merchat_id') {
+                $this->field[$name] = $qapp_user->ali_pay_merchat_id;
+            }
         }
         return  $this->field[$name];
     }

+ 5 - 5
app/Http/Controllers/QuickApp/Order/OrdersController.php

@@ -18,6 +18,7 @@ use App\Modules\Product\Services\ProductService;
 use App\Modules\Book\Services\BookConfigService;
 use App\Modules\Book\Services\BookService;
 use App\Modules\Channel\Services\PayTemplateService;
+use App\Modules\Subscribe\Models\Order;
 use App\Modules\Trade\Pay\OrderArousePayFactory;
 use App\Modules\Trade\Pay\OrderPaySuccess;
 use App\Modules\Trade\Services\PayMerchantService;
@@ -456,7 +457,7 @@ class OrdersController extends BaseController
     function wxIndex(Request $request)
     {
         if ($params = $this->getPayParams($request)) {
-            $params['pay_merchant_source'] = 'OFFICIALPAY_QAPP_APP';
+            $params['pay_merchant_id'] = $this->app_pay_merchat_id;
         } else {
             return response()->error('QAPP_PARAM_ERROR');
         }
@@ -505,7 +506,7 @@ class OrdersController extends BaseController
     function wxH5Index(Request $request)
     {
         if ($params = $this->getPayParams($request)) {
-            $params['pay_merchant_source'] = 'OFFICIALPAY_QAPP_H5';
+            $params['pay_merchant_id'] = $this->h5_pay_merchat_id;
         } else {
             return response()->error('QAPP_PARAM_ERROR');
         }
@@ -544,7 +545,6 @@ class OrdersController extends BaseController
     public function aliIndex(Request $request)
     {
         if ($params = $this->getPayParams($request)) {
-            $params['pay_merchant_source'] = 'QuickAppALiPay';
             $params['type'] = 'App';
         } else {
             return response()->error('QAPP_PARAM_ERROR');
@@ -594,8 +594,8 @@ class OrdersController extends BaseController
         myLog('wxpay')->info($xml);
         if (isset($xml['attach'])) {
 
-            $pay_merchant_name = $xml['attach'];
-            $config = PayMerchantService::getPayConfigByNameStatic($pay_merchant_name);
+            $pay_merchant_id = (int) $xml['attach'];
+            $config = PayMerchantService::findPayConfig($pay_merchant_id);
             $app = PayFactory::official($config);
             $response = $app->notify()->handleNotify(function ($notify, $successful) {
                 if (!$successful) {

+ 0 - 1
app/Http/Controllers/QuickApp/WelcomeController.php

@@ -20,7 +20,6 @@ class WelcomeController extends BaseController
         $decode_id = Hashids::decode($send_order_id_encode);
         if ($decode_id) {
             $this->send_order_id = $decode_id[0];
-            myLog('test')->info('welcome.send_order_id: ' . $this->send_order_id);
             $send_order = SendOrderService::getSendOrderStatic($this->send_order_id);
             $quick_send_order = SendOrderService::getQuickAppSendOrderStatic($this->send_order_id);
             $this->sendOrderStatistic($send_order);

+ 0 - 1
app/Http/Middleware/QuickAppGetUserFromToken.php

@@ -30,7 +30,6 @@ class QuickAppGetUserFromToken extends BaseMiddleware
             $user = $this->auth->authenticate($token);
             $send_order_id =  $request->header('send-order-id', 0);
             if ($send_order_id) {
-                myLog('test')->info('send_order_id: ' . $send_order_id);
                 UserService::setUserSendOrderStatic($user->id, $send_order_id);
             }
             QappUserService::setGolableUserStatic($user->id);

+ 3 - 2
app/Libs/Pay/Merchants/Official.php

@@ -11,7 +11,7 @@ namespace App\Libs\Pay\Merchants;
 
 use EasyWeChat\Foundation\Application;
 use EasyWeChat\Payment\Order as Wxorder;
-use Log;
+use Illuminate\Support\Facades\Log;
 
 class Official implements PayMerchantInterface
 {
@@ -144,5 +144,6 @@ class Official implements PayMerchantInterface
     }
 
     public function refund(array $data)
-    { }
+    {
+    }
 }

+ 1 - 1
app/Modules/Trade/Pay/AliOrderArousePay.php

@@ -4,7 +4,7 @@ namespace App\Modules\Trade\Pay;
 
 use App\Libs\Pay\PayFactory;
 use Exception;
-use Log;
+use Illuminate\Support\Facades\Log;
 
 class AliOrderArousePay extends OrderArousePayAbstract
 {

+ 2 - 2
app/Modules/Trade/Pay/OrderArousePayAbstract.php

@@ -32,7 +32,7 @@ abstract class OrderArousePayAbstract
             'product_id' => $data['product_id'],
             'distribution_channel_id' => $data['distribution_channel_id'],
             'trade_no' => $data['trade_no'],
-            'pay_merchant_source' => $data['pay_merchant_source'],
+            'pay_merchant_id' =>  $data['pay_merchant_id'],
             'order_type' => $data['order_type'],
             'create_ip' => $data['create_ip'],
             'send_order_id' => $data['send_order_id'],
@@ -41,7 +41,7 @@ abstract class OrderArousePayAbstract
             'status' => 'UNPAID',
             'transaction_id' => '',
             'pay_end_at' => '0000-00-00 00:00:00',
-            'pay_merchant_id' => isset($data['pay_merchant_id']) ? $data['pay_merchant_id'] : 0,
+            'pay_merchant_source' => '',
             'send_order_name' => isset($data['send_order_name']) ? $data['send_order_name'] : '',
             'pay_type' => isset($data['pay_type']) ? $data['pay_type'] : 1,
             'from_bid' => isset($data['from_bid']) ? $data['from_bid'] : 0,

+ 2 - 2
app/Modules/Trade/Pay/PaySuccessAbstract.php

@@ -3,9 +3,9 @@
 namespace App\Modules\Trade\Pay;
 
 use App\Modules\Subscribe\Models\Order;
-use DB;
 use Exception;
-use Log;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
 
 /**
  * 

+ 5 - 4
app/Modules/Trade/Pay/WxOrderArousePay.php

@@ -4,14 +4,15 @@ namespace App\Modules\Trade\Pay;
 
 use App\Libs\Pay\PayFactory;
 use App\Modules\Trade\Services\PayMerchantService;
-use Log;
+use Exception;
+use Illuminate\Support\Facades\Log;
 
 class WxOrderArousePay extends OrderArousePayAbstract
 {
     public function arouse(array $data)
     {
-        $pay_merchant_name = $data['pay_merchant_source'];
-        $config = PayMerchantService::getPayConfigByNameStatic($pay_merchant_name);
+        $pay_merchant_id = (int) $data['pay_merchant_id'];
+        $config = PayMerchantService::findPayConfig($pay_merchant_id);
         $pay = PayFactory::official($config);
         try {
             $payOrder = [
@@ -20,7 +21,7 @@ class WxOrderArousePay extends OrderArousePayAbstract
                 'price'        => $data['price'], // 订单金额,单位:分
                 'body'             => '快应用 小说', // 订单描述
                 'create_ip' => _getIp(), // 支付人的 IP
-                'remark'            =>  $pay_merchant_name
+                'remark'            =>  $pay_merchant_id
             ];
             $result = $pay->send($payOrder);
             if ($result) {

+ 8 - 9
app/Modules/Trade/Services/PayMerchantService.php

@@ -12,16 +12,14 @@ namespace App\Modules\Trade\Services;
 use App\Modules\BaseService;
 use App\Modules\Trade\Models\PayMerchant;
 
-/**
- * @method static array getPayConfigByNameStatic(string $name) 获取微信支付配置信息
- */
 class PayMerchantService
 {
-    use BaseService;
-
-    public function getPayConfigByName(string $name)
+    /**
+     * 查找微信支付配置信息
+     */
+    public static function findPayConfig(int $id)
     {
-        $pay_merchant = PayMerchant::where('name', $name)->first();
+        $pay_merchant = PayMerchant::find($id);
         $pay_config = json_decode($pay_merchant->config_info);
         return [
             'appid'     => $pay_config->appid,
@@ -37,7 +35,7 @@ class PayMerchantService
      */
     public static function getPayMerchantSingle($id)
     {
-        return PayMerchant::getPayMerchantSingle($id);
+        return  PayMerchant::find($id);
     }
 
     /**
@@ -46,6 +44,7 @@ class PayMerchantService
      */
     public static function getPayMerchantSourceList()
     {
-        return PayMerchant::getPayMerchantSourceList();
+        $result = PayMerchant::select('source')->distinct();
+        return $result;
     }
 }

+ 3 - 0
app/Modules/User/Models/QappPackage.php

@@ -13,5 +13,8 @@ class QappPackage extends Model
         'package',
         'channel_id',
         'company',
+        'app_pay_merchat_id',
+        'h5_pay_merchat_id',
+        'ali_pay_merchat_id',
     ];
 }

+ 8 - 3
app/Modules/User/Services/QappUserService.php

@@ -3,15 +3,13 @@
 
 namespace App\Modules\User\Services;
 
-use App\Consts\SysConsts;
 use App\Modules\BaseService;
 use App\Modules\User\Models\QappPackage;
 use App\Modules\User\Models\QappUser;
 use App\Modules\User\Models\User;
-use DB;
 use Exception;
+use Illuminate\Support\Facades\DB;
 use Tymon\JWTAuth\Facades\JWTAuth;
-use Redis;
 
 /**
  * 
@@ -89,6 +87,9 @@ class QappUserService
         $qapp_user->device_info = $user_info->device_info;
         $qapp_user->phone = $user_info->phone;
         $qapp_user->user = $user_info->user;
+        $qapp_user->app_pay_merchat_id = $user_info->app_pay_merchat_id;
+        $qapp_user->h5_pay_merchat_id = $user_info->h5_pay_merchat_id;
+        $qapp_user->ali_pay_merchat_id = $user_info->ali_pay_merchat_id;
     }
 
     /**
@@ -114,6 +115,10 @@ class QappUserService
             $user = User::find($uid);
             $qapp_user->user = $user;
             $qapp_user->send_order_id = UserService::getUserSendOrderStatic($uid);
+            $package_info = QappPackage::where('channel_id', $user->distribution_channel_id)->first();
+            $qapp_user->app_pay_merchat_id = $package_info->app_pay_merchat_id;
+            $qapp_user->h5_pay_merchat_id = $package_info->h5_pay_merchat_id;
+            $qapp_user->ali_pay_merchat_id = $package_info->ali_pay_merchat_id;
         }
         return $qapp_user;
     }

+ 24 - 23
config/error.php

@@ -190,28 +190,29 @@ return [
         'XCX_DOMAIN_NOT_MATCH' => ['code' => 10022, 'msg' => '域名不匹配'],
 
         //Quick App 快应用
-        'QAPP_NOT_LOGIN' => ['code' => 10023, 'msg' => '未登录'],
-        'QAPP_CHECKED_IN' => ['code' => 10024, 'msg' => '已签到'],
-        'QAPP_TOKEN_ERROR' => ['code' => 10023, 'msg' => 'token失效'],
-        'QAPP_NOT_ORDERED' => ['code' => 10002, 'msg' => '未订购'],
-        'QAPP_PARAM_ERROR' => ['code' => 10003, 'msg' => '参数错误'],
-        'QAPP_SYS_ERROR' => ['code' => 10004, 'msg' => '系统错误'],
-        'QAPP_SIGN_ERROR' => ['code' => 10005, 'msg' => '签名有误'],
-        'QAPP_NOT_EXIST' => ['code' => 10007, 'msg' => '资源不存在'],
-        'QAPP_ADDED_SHELF' => ['code' => 10008, 'msg' => '已添加到书架'],
-        'QAPP_INSUFFICIENT_BALANCE' => ['code' => 10009, 'msg' => '余额不足'],
-        'QAPP_ORDER_FAILED' => ['code' => 10010, 'msg' => '订购失败'],
-        'QAPP_PRODUCT_NOT_FOUND' => ['code' => 10011, 'msg' => '产品找不到'],
-        'QAPP_NOT_SUBSCRIBE' => ['code' => 10012, 'msg' => '未关注'],
-        'QAPP_LACK_PARAM' => ['code' => 10013, 'msg' => '缺少参数'],
-        'QAPP_BOOK_INSUFFICIENT_BALANCE' => ['code' => 10014, 'msg' => '单本余额不足'],
-        'QAPP_CHAPTER_INSUFFICIENT_BALANCE' => ['code' => 10015, 'msg' => '章订余额不足'],
-        'QAPP_CHAPTER_BUY' => ['code' => 10016, 'msg' => '购买章节'],
-        'QAPP_BOOK_BUY' => ['code' => 10017, 'msg' => '购买图书'],
-        'QAPP_OFF_SHELF' => ['code' => 10018, 'msg' => '图书下架'],
-        'QAPP_BOOK_BALANCE_PAY' => ['code' => 10019, 'msg' => '购买图书'],
-        'QAPP_BOOK_SECOND_BALANCE_PAY' => ['code' => 10020, 'msg' => '第二次图书订购余额不足'],
-        'QAPP_CHAPTER_SECOND_BALANCE_PAY' => ['code' => 10021, 'msg' => '第二次章节订购余额不足'],
-        'QAPP_DOMAIN_NOT_MATCH' => ['code' => 10022, 'msg' => '域名不匹配'],
+        'QAPP_NOT_LOGIN' => ['code' => 10001, 'msg' => '未登录'],
+        'QAPP_CHECKED_IN' => ['code' => 10002, 'msg' => '已签到'],
+        'QAPP_TOKEN_ERROR' => ['code' => 10003, 'msg' => 'token失效'],
+        'QAPP_NOT_ORDERED' => ['code' => 10004, 'msg' => '未订购'],
+        'QAPP_PARAM_ERROR' => ['code' => 10005, 'msg' => '参数错误'],
+        'QAPP_SYS_ERROR' => ['code' => 10006, 'msg' => '系统错误'],
+        'QAPP_SIGN_ERROR' => ['code' => 10007, 'msg' => '签名有误'],
+        'QAPP_NOT_EXIST' => ['code' => 10008, 'msg' => '资源不存在'],
+        'QAPP_ADDED_SHELF' => ['code' => 10009, 'msg' => '已添加到书架'],
+        'QAPP_INSUFFICIENT_BALANCE' => ['code' => 10010, 'msg' => '余额不足'],
+        'QAPP_ORDER_FAILED' => ['code' => 10011, 'msg' => '订购失败'],
+        'QAPP_PRODUCT_NOT_FOUND' => ['code' => 10012, 'msg' => '产品找不到'],
+        'QAPP_NOT_SUBSCRIBE' => ['code' => 10013, 'msg' => '未关注'],
+        'QAPP_LACK_PARAM' => ['code' => 10014, 'msg' => '缺少参数'],
+        'QAPP_BOOK_INSUFFICIENT_BALANCE' => ['code' => 10015, 'msg' => '单本余额不足'],
+        'QAPP_CHAPTER_INSUFFICIENT_BALANCE' => ['code' => 10016, 'msg' => '章订余额不足'],
+        'QAPP_CHAPTER_BUY' => ['code' => 10017, 'msg' => '购买章节'],
+        'QAPP_BOOK_BUY' => ['code' => 10018, 'msg' => '购买图书'],
+        'QAPP_OFF_SHELF' => ['code' => 10019, 'msg' => '图书下架'],
+        'QAPP_BOOK_BALANCE_PAY' => ['code' => 10020, 'msg' => '购买图书'],
+        'QAPP_BOOK_SECOND_BALANCE_PAY' => ['code' => 10021, 'msg' => '第二次图书订购余额不足'],
+        'QAPP_CHAPTER_SECOND_BALANCE_PAY' => ['code' => 10022, 'msg' => '第二次章节订购余额不足'],
+        'QAPP_DOMAIN_NOT_MATCH' => ['code' => 10023, 'msg' => '域名不匹配'],
+        'APP_CREATE_WECHAT_ORDER_FAIL' => ['code' => 10024, 'msg' => '微信订单创建失败'],
 
 ];