1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * PayDriver.php UTF-8
- * 支付驱动
- *
- * @date : 2018/2/8 11:47
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huolib\pay;
- use huolib\status\OrderStatus;
- use think\Exception;
- use think\Log;
- class Pay {
- static $ins;
- private $payway_map
- = [
- 'default' => 'Alipay',
- 'alipay' => 'Alipay',
- 'wxpay' => 'Wxpay',
- 'shengpay' => 'Shengpay',
- 'balance' => 'Balancepay'
- ];
- public static function ins() {
- if (self::$ins == null) {
- self::$ins = new self();
- }
- return self::$ins;
- }
- /**
- * @param string $payway
- *
- * @return mixed
- * @throws Exception
- */
- public function get($payway = '') {
- if (empty($payway)) {
- return $this->register('default');
- }
- $_pay_obj = $this->register($payway);
- if (!isset($_pay_obj)) {
- Log::write(
- "func=".__FUNCTION__."&class=".__CLASS__."&errmsg=registerError&payway=".$payway
- .'objName='.$this->payway_map[$payway], 'info'
- );
- throw new Exception(OrderStatus::getMsg(OrderStatus::PAYWAY_INCORRECT), OrderStatus::PAYWAY_INCORRECT);
- }
- return $_pay_obj;
- }
- /**
- * @param string $payway
- *
- * @return mixed
- */
- protected function register($payway = '') {
- $payway = strtolower($payway);
- $_class = '\\huolib\\pay\\driver\\'.$this->payway_map[$payway];
- return new $_class();
- }
- }
|