fly 5 年 前
コミット
a3b3b755a3

+ 4 - 5
app/Libs/Pay/Merchants/Official.php

@@ -23,7 +23,6 @@ class Official implements PayMerchantInterface
     private $key;
     private $key;
     private $cert_path;
     private $cert_path;
     private $key_path;
     private $key_path;
-    private $trade_type;
     private $app;
     private $app;
 
 
     public function __construct($config)
     public function __construct($config)
@@ -35,7 +34,6 @@ class Official implements PayMerchantInterface
         $this->token = isset($config['token']) ? $config['token'] : '';
         $this->token = isset($config['token']) ? $config['token'] : '';
         $this->key_path = isset($config['key_path']) ? $config['key_path'] : '';
         $this->key_path = isset($config['key_path']) ? $config['key_path'] : '';
         $this->cert_path = isset($config['cert_path']) ? $config['cert_path'] : '';
         $this->cert_path = isset($config['cert_path']) ? $config['cert_path'] : '';
-        $this->trade_type = isset($config['trade_type']) ? $config['trade_type'] : 'JSAPI';
         $options = [
         $options = [
             'app_id' => $this->appid,
             'app_id' => $this->appid,
             'secret' => $this->secret,
             'secret' => $this->secret,
@@ -54,8 +52,9 @@ class Official implements PayMerchantInterface
     {
     {
         $app =  $this->app;
         $app =  $this->app;
         $payment = $app->payment;
         $payment = $app->payment;
+        $trade_type = isset($data['trade_type']) ? $data['trade_type'] : 'JSAPI';
         $attributes = [
         $attributes = [
-            'trade_type' => $this->trade_type,
+            'trade_type' => $trade_type,
             'body' => $data['body'],
             'body' => $data['body'],
             'detail' => isset($data['detail']) ? $data['detail'] : '',
             'detail' => isset($data['detail']) ? $data['detail'] : '',
             'out_trade_no' => $data['trade_no'],
             'out_trade_no' => $data['trade_no'],
@@ -64,11 +63,11 @@ class Official implements PayMerchantInterface
             'openid' => isset($data['openid']) ? $data['openid'] : '',
             'openid' => isset($data['openid']) ? $data['openid'] : '',
             'spbill_create_ip' => $data['create_ip'],
             'spbill_create_ip' => $data['create_ip'],
             'attach' => $data['remark']
             'attach' => $data['remark']
-        ];
+    ];
         $order = new Wxorder($attributes);
         $order = new Wxorder($attributes);
         $result = $payment->prepare($order);
         $result = $payment->prepare($order);
         if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
         if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
-            switch ($this->trade_type) {
+            switch ($trade_type) {
                 case 'JSAPI':
                 case 'JSAPI':
                     $data = [
                     $data = [
                         'appId' => $result->appid,
                         'appId' => $result->appid,

+ 3 - 8
app/Modules/Trade/Pay/WxOrderArousePay.php

@@ -4,6 +4,7 @@ namespace App\Modules\Trade\Pay;
 
 
 use App\Libs\Pay\PayFactory;
 use App\Libs\Pay\PayFactory;
 use App\Modules\Trade\Models\PayMerchant;
 use App\Modules\Trade\Models\PayMerchant;
+use App\Modules\Trade\Services\PayMerchantService;
 use Log;
 use Log;
 
 
 class WxOrderArousePay extends OrderArousePayAbstract
 class WxOrderArousePay extends OrderArousePayAbstract
@@ -11,17 +12,11 @@ class WxOrderArousePay extends OrderArousePayAbstract
     public function arouse(array $data)
     public function arouse(array $data)
     {
     {
         $pay_merchant_name = $data['pay_merchant_source'];
         $pay_merchant_name = $data['pay_merchant_source'];
-        $pay_merchant = PayMerchant::where('name', $pay_merchant_name)->first();
-        $pay_config = json_decode($pay_merchant->config_info);
-        $config = [
-            'appid'     => $pay_config->appid,
-            'merchant_id'     => $pay_config->merchant_id,
-            'key'    => $pay_config->key,
-            'trade_type' => $data['trade_type'],
-        ];
+        $config = PayMerchantService::getPayConfigByNameStatic($pay_merchant_name);
         $pay = PayFactory::official($config);
         $pay = PayFactory::official($config);
         try {
         try {
             $payOrder = [
             $payOrder = [
+                'trade_type'     => $data['trade_type'], // 交易类型
                 'trade_no'     => $data['trade_no'], // 订单号
                 'trade_no'     => $data['trade_no'], // 订单号
                 'price'        => $data['price'], // 订单金额,单位:分
                 'price'        => $data['price'], // 订单金额,单位:分
                 'body'             => '快应用 小说', // 订单描述
                 'body'             => '快应用 小说', // 订单描述

+ 22 - 5
app/Modules/Trade/Services/PayMerchantService.php

@@ -1,4 +1,5 @@
 <?php
 <?php
+
 /**
 /**
  * Created by PhpStorm.
  * Created by PhpStorm.
  * User: tandunzhao
  * User: tandunzhao
@@ -8,18 +9,34 @@
 
 
 namespace App\Modules\Trade\Services;
 namespace App\Modules\Trade\Services;
 
 
-
+use App\Modules\BaseService;
 use App\Modules\Trade\Models\PayMerchant;
 use App\Modules\Trade\Models\PayMerchant;
 
 
+/**
+ * @method static array getPayConfigByNameStatic(string $name) 获取微信支付配置信息
+ */
 class PayMerchantService
 class PayMerchantService
 {
 {
+    use BaseService;
+
+    public function getPayConfigByName(string $name)
+    {
+        $pay_merchant = PayMerchant::where('name', $name)->first();
+        $pay_config = json_decode($pay_merchant->config_info);
+        return [
+            'appid'     => $pay_config->appid,
+            'merchant_id'     => $pay_config->merchant_id,
+            'key'    => $pay_config->key,
+        ];
+    }
 
 
     /**
     /**
      * 根据ID查找
      * 根据ID查找
      * @param $id
      * @param $id
      * @return mixed
      * @return mixed
      */
      */
-    public static function getPayMerchantSingle($id) {
+    public static function getPayMerchantSingle($id)
+    {
         return PayMerchant::getPayMerchantSingle($id);
         return PayMerchant::getPayMerchantSingle($id);
     }
     }
 
 
@@ -27,8 +44,8 @@ class PayMerchantService
      * 查找所有的支付渠道通道
      * 查找所有的支付渠道通道
      * @return mixed
      * @return mixed
      */
      */
-    public static function getPayMerchantSourceList() {
+    public static function getPayMerchantSourceList()
+    {
         return PayMerchant::getPayMerchantSourceList();
         return PayMerchant::getPayMerchantSourceList();
     }
     }
-
-}
+}