|
|
@ -14,13 +14,16 @@ namespace app\service\admin\pay; |
|
|
use app\dict\common\ChannelDict; |
|
|
use app\dict\common\ChannelDict; |
|
|
use app\dict\pay\PayDict; |
|
|
use app\dict\pay\PayDict; |
|
|
use app\dict\pay\PaySceneDict; |
|
|
use app\dict\pay\PaySceneDict; |
|
|
|
|
|
use app\model\customer_resources\CustomerResources; |
|
|
use app\model\member\Member; |
|
|
use app\model\member\Member; |
|
|
|
|
|
use app\model\order_table\OrderTable; |
|
|
use app\model\pay\Pay; |
|
|
use app\model\pay\Pay; |
|
|
use app\model\sys\Poster; |
|
|
use app\model\sys\Poster; |
|
|
use app\service\core\pay\CorePayService; |
|
|
use app\service\core\pay\CorePayService; |
|
|
use app\service\core\paytype\CoreOfflineService; |
|
|
use app\service\core\paytype\CoreOfflineService; |
|
|
use app\service\core\sys\CoreSysConfigService; |
|
|
use app\service\core\sys\CoreSysConfigService; |
|
|
use core\base\BaseAdminService; |
|
|
use core\base\BaseAdminService; |
|
|
|
|
|
use core\pay\PayLoader; |
|
|
use think\db\exception\DataNotFoundException; |
|
|
use think\db\exception\DataNotFoundException; |
|
|
use think\db\exception\DbException; |
|
|
use think\db\exception\DbException; |
|
|
use think\db\exception\ModelNotFoundException; |
|
|
use think\db\exception\ModelNotFoundException; |
|
|
@ -220,4 +223,33 @@ class PayService extends BaseAdminService |
|
|
} |
|
|
} |
|
|
return $pay_type_list; |
|
|
return $pay_type_list; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function order_pay($data){ |
|
|
|
|
|
$out_trade_no = 'sm'.date("YmdHis").time(); |
|
|
|
|
|
$order = new OrderTable(); |
|
|
|
|
|
$order_info = $order->where(['id' => $data['order_id']])->find(); |
|
|
|
|
|
$cr = new CustomerResources(); |
|
|
|
|
|
$resource_info = $cr->where(['id' => $order_info['resource_id']])->find(); |
|
|
|
|
|
$config = return_pay_config($resource_info['campus'],$data['order_id']); |
|
|
|
|
|
|
|
|
|
|
|
$params = [ |
|
|
|
|
|
'out_trade_no' => $out_trade_no, |
|
|
|
|
|
'body' => '订单扫码支付:'.$out_trade_no, |
|
|
|
|
|
'money' => $order_info['order_amount'] * 100, |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
$pay = new PayLoader('Wechatpay', $config); |
|
|
|
|
|
|
|
|
|
|
|
$url = $pay->scan($params); |
|
|
|
|
|
$path = qrcode($url['code_url'],'',[],'upload/qrcode/pay/'); |
|
|
|
|
|
|
|
|
|
|
|
$order->where(['id' => $data['order_id']])->update(['payment_id' => $out_trade_no,'ipv3' => $config['mch_secret_key']]); |
|
|
|
|
|
return ['qrcode_url' => getCurrentDomain().$path,'out_trade_no'=>$out_trade_no]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function check_payment_status($data){ |
|
|
|
|
|
$order = new OrderTable(); |
|
|
|
|
|
$order_status = $order->where(['payment_id' => $data['out_trade_no']])->value("order_status"); |
|
|
|
|
|
return ['order_status'=>$order_status]; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|