rabin 1 年之前
父節點
當前提交
815b1bcdb3
共有 4 個文件被更改,包括 53 次插入14 次删除
  1. 20 1
      database/yspay_merchant.php
  2. 10 8
      lib/Yspay.php
  3. 14 0
      yspay/Cash.php
  4. 9 5
      yspay/Sign.php

+ 20 - 1
database/yspay_merchant.php

@@ -1,4 +1,9 @@
 <?php
+$type = array
+(
+    1 => '正常商户',
+    2 => '平台商户',
+);
 $status = array
 (
     1 => '已签约',
@@ -57,9 +62,22 @@ return array
             'list'      => true,
         ),
 
+        'type'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '商户类型-平台商户将自动收取支付时未配置正常商户的金额,有多个平台商户时将自动随机抽取,平台商户不会分账',
+            'default'   => '1',
+            'desc'      => '商户类型',
+            'match'     => 'option',
+            'search'    => 'select',
+            'update'    => 'radio',
+            'option'    => $type,
+            'list'      => true,
+        ),
+
         'project_id'       => array
         (
-            'type'      => 'varchar-500',
+            'type'      => 'int-11',
             'name'      => '所属项目',
             'default'   => '',
             'desc'      => '所属项目',
@@ -88,6 +106,7 @@ return array
             'default'   => '',
             'desc'      => '商户号',
             'match'     => 'option',
+            'search'    => 'fulltext',
             'update'    => 'text',
             'list'		=> true,
         ),

+ 10 - 8
lib/Yspay.php

@@ -194,14 +194,16 @@ class Yspay extends Core
 			if ($request['subOrders']) {
 				$request['divisionFlag'] = true;
 				if ($request['platformAmount'] > 0) {
-					
-					$request['subOrders'][] = array
-					(
-						'totalAmount' => $request['platformAmount'],
-						'mid' => $request['mid'],
-						'merOrderId' => $request['merOrderId'] . '_0',
-					);
-					$request['platformAmount'] = 0;
+					$mid = Dever::load('pay/yspay/cash')->getMid($this->config['id']);
+					if ($mid) {
+						$request['subOrders'][] = array
+						(
+							'totalAmount' => $request['platformAmount'],
+							'mid' => $mid,
+							'merOrderId' => $request['merOrderId'] . '_0',
+						);
+						$request['platformAmount'] = 0;
+					}
 				}
 			}
 		}

+ 14 - 0
yspay/Cash.php

@@ -152,4 +152,18 @@ class Cash
     	}
     	return 'ok';
     }
+
+    # 随机获取平台商户
+    public function getMid($account_id)
+    {
+    	$merchant = Dever::db('pay/yspay_merchant')->select(array('type' => 2, 'account_id' => $account_id, 'status' => 1));
+
+    	if ($merchant) {
+    		$key = array_rand($merchant);
+    		if ($key && isset($merchant[$key])) {
+    			return $merchant['mid'];
+    		}
+    	}
+    	return false;
+    }
 }

+ 9 - 5
yspay/Sign.php

@@ -82,11 +82,15 @@ Class Sign
 			return '签约已完成';
 		}
 		$sign = Dever::db('pay/yspay_sign')->find($sign_id);
-		$log = Dever::db('pay/yspay_sign_log')->find(array('merchant_id' => $sign['merchant_id']));
-		if ($log) {
-			$date = date('Y-m-d H:i', $log['cdate']);
-			$step = Dever::db('pay/yspay_sign_log')->config['step'][$log['step']];
-			return $date . '<br />' . $step . '<br />' . $log['desc'];
+		if ($sign) {
+			$log = Dever::db('pay/yspay_sign_log')->find(array('merchant_id' => $sign['merchant_id']));
+			if ($log) {
+				$date = date('Y-m-d H:i', $log['cdate']);
+				$step = Dever::db('pay/yspay_sign_log')->config['step'][$log['step']];
+				return $date . '<br />' . $step . '<br />' . $log['desc'];
+			} else {
+				return '待签约提审';
+			}
 		} else {
 			return '待签约提审';
 		}