dever 3 년 전
부모
커밋
b3ffd40b9c
3개의 변경된 파일58개의 추가작업 그리고 39개의 파일을 삭제
  1. 6 0
      lib/Cmbc.php
  2. 7 1
      lib/Wechat.php
  3. 45 38
      lib/Yspay.php

+ 6 - 0
lib/Cmbc.php

@@ -83,6 +83,11 @@ class Cmbc extends Core
 		$notify = new \NativePay();
 		$result = $notify->GetPayUrl($order);
 		$url = $result['code_url'];
+		return array
+		(
+			'url' => $url,
+			'type' => 'qrcode',
+		);
 		return $url;
 	}
 
@@ -98,6 +103,7 @@ class Cmbc extends Core
 			$result['prepay_id'] = $order['prepay_id'];
 			$result['sign_type'] = $order['signType'];
 			$result['sign'] = $order['paySign'];
+			$result['type'] = 'applet';
 		}
 		return $result;
 	}

+ 7 - 1
lib/Wechat.php

@@ -133,7 +133,11 @@ class Wechat extends Core
 		$result = $notify->GetPayUrl($order);
 		if (isset($result['code_url'])) {
 			$url = $result['code_url'];
-			return $url;
+			return array
+			(
+				'url' => $url,
+				'type' => 'qrcode',
+			);
 		}
 
 		return '';
@@ -155,6 +159,7 @@ class Wechat extends Core
 			}
 
 			$order['sign'] = $string;
+			$order['type'] = 'applet';
 		}
 		return $order;
 	}
@@ -186,6 +191,7 @@ class Wechat extends Core
 			}
 
 			$order['sign'] = $string;
+			$order['type'] = 'app';
 		}
 		return $order;
 	}

+ 45 - 38
lib/Yspay.php

@@ -81,7 +81,6 @@ class Yspay extends Core
 	 */
 	public function order($account_id, $project_id, $uid, $username, $product_id, $name, $cash, $openid = false, $type = 1, $order_id = false, $other = false)
 	{
-		$trade_type = $this->getType($type);
 		$order_id = $this->createOrder($uid, $username, $account_id, $project_id, $product_id, $name, $cash, $this->config['type'], $order_id);
 
 		if (isset($this->config['prefix']) && $this->config['prefix']) {
@@ -126,19 +125,35 @@ class Yspay extends Core
 			$request['subOpenId'] = $openid;
 		}
 		
-		$result = Base::pay($request, $this->config);
-		if (isset($result['miniPayRequest'])) {
-			$result['request'] = $request;
-			$result['payMsg'] = $result['miniPayRequest'];
-			unset($result['miniPayRequest']);
-			if ($other) {
-				$result['other'] = $other;
+		if ($type == 2) {
+			# 二维码支付
+			$result = Base::get_pay_code($request, $this->config);
+
+			if (isset($result['billQRCode'])) {
+				$result['request'] = $request;
+				$result['payMsg'] = $result['billQRCode'];
+				if ($other) {
+					$result['other'] = $other;
+				}
+				$this->updateOrderParam($order_id, $result);
+				return $result['payMsg'];
 			}
-			$this->updateOrderParam($order_id, $result);
-			return $result['payMsg'];
 		} else {
-			return false;
+			# 小程序支付
+			$result = Base::pay($request, $this->config);
+
+			if (isset($result['miniPayRequest'])) {
+				$result['request'] = $request;
+				$result['payMsg'] = $result['miniPayRequest'];
+				unset($result['miniPayRequest']);
+				if ($other) {
+					$result['other'] = $other;
+				}
+				$this->updateOrderParam($order_id, $result);
+				return $result['payMsg'];
+			}
 		}
+		return false;
 	}
 
 	# 退款
@@ -228,10 +243,10 @@ class Yspay extends Core
 	 */
 	public function qrcode($order, $refer)
 	{
-		$notify = new \NativePay();
-		$result = $notify->GetPayUrl($order);
-		$url = $result['code_url'];
-		return $url;
+		$result['type'] = 'qrcode';
+		$result['url'] = $order;
+
+		return $result;
 	}
 
 	/**
@@ -247,6 +262,7 @@ class Yspay extends Core
 			$result['prepay_id'] = $prepay_id;
 			$result['sign_type'] = $order['signType'];
 			$result['sign'] = $order['paySign'];
+			$result['type'] = 'applet';
 		}
 		return $result;
 	}
@@ -297,29 +313,6 @@ class Yspay extends Core
 
 		return $html;
 	}
-
-	private function getType($type)
-	{
-		switch ($type) {
-			case 1:
-				$type = 'JSAPI';
-				break;
-			
-			case 2:
-				$type = 'NATIVE';
-				break;
-
-			case 3:
-				$type = 'APP';
-				break;
-
-			case 4:
-				$type = 'MWEB';
-				break;
-		}
-
-		return $type;
-	}
 }
 
 class Base
@@ -352,6 +345,9 @@ class Base
 	# 订单关闭
 	static $close_url = 'v1/netpay/close';
 
+	# 二维码支付
+	static $qrcode_url = 'v1/netpay/bills/get-qrcode';
+
 
 	//===================== 支付相关 ==============================
 	/**
@@ -365,6 +361,17 @@ class Base
 		return $result;
 	}
 
+	/**
+	 * 获取支付二维码
+	 */
+	static public function get_pay_code($param, $config)
+	{
+		$url = self::$qrcode_url;
+		$result = self::get($url, $param, $config);
+
+		return $result;
+	}
+
 	/**
 	 * 支付撤销
 	 */