115 lines
3.9 KiB
PHP
115 lines
3.9 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
|
||
namespace app\home\controller\v1;
|
||
|
||
|
||
use app\Request;
|
||
use crmeb\services\app\MiniProgramService;
|
||
use crmeb\services\pay\Pay;
|
||
|
||
/**
|
||
* 支付回调
|
||
* Class PayController
|
||
* @package app\api\controller\v1
|
||
*/
|
||
class PayController
|
||
{
|
||
|
||
/**
|
||
* 支付回调
|
||
* @param string $type
|
||
* @return string|void
|
||
* @throws \EasyWeChat\Core\Exceptions\FaultException
|
||
*/
|
||
public function notify(string $type)
|
||
{
|
||
switch (urldecode($type)) {
|
||
case 'alipay':
|
||
/** @var Pay $pay */
|
||
$pay = app()->make(Pay::class, ['ali_pay']);
|
||
return $pay->handleNotify();
|
||
case 'v3wechat':
|
||
return app()->make(Pay::class, ['v3_wechat_pay'])->handleNotify()->getContent();
|
||
case 'routine':
|
||
return MiniProgramService::handleNotify();
|
||
case 'wechat':
|
||
if (sys_config('pay_wechat_type')) {
|
||
/** @var Pay $pay */
|
||
$pay = app()->make(Pay::class, ['v3_wechat_pay']);
|
||
} else {
|
||
/** @var Pay $pay */
|
||
$pay = app()->make(Pay::class);
|
||
}
|
||
return $pay->handleNotify()->getContent();
|
||
default:
|
||
if (strstr($type, 'allin') !== false) {
|
||
/** @var Pay $pay */
|
||
$pay = app()->make(Pay::class, ['allin_pay']);
|
||
return $pay->handleNotify($type);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 支付配置
|
||
* @param Request $request
|
||
* @return mixed
|
||
*/
|
||
public function config(Request $request)
|
||
{
|
||
$config = [
|
||
[
|
||
'icon' => 'icon-weixinzhifu',
|
||
'name' => '微信支付',
|
||
'value' => 'weixin',
|
||
'title' => '使用微信快捷支付',
|
||
'number' => null,
|
||
'payStatus' => !!sys_config('pay_weixin_open', 0),
|
||
],
|
||
[
|
||
'icon' => 'icon-zhifubao',
|
||
'name' => '支付宝支付',
|
||
'value' => 'alipay',
|
||
'title' => '使用线上支付宝支付',
|
||
'number' => null,
|
||
'payStatus' => !!sys_config('ali_pay_status', 0),
|
||
],
|
||
[
|
||
'icon' => 'icon-yuezhifu',
|
||
'name' => '余额支付',
|
||
'value' => 'yue',
|
||
'title' => '当前可用余额',
|
||
'number' => $request->user('now_money'),
|
||
'payStatus' => (int)sys_config('yue_pay_status', 0) === 1,
|
||
],
|
||
[
|
||
'icon' => 'icon-yuezhifu1',
|
||
'name' => '线下支付',
|
||
'value' => 'offline',
|
||
'title' => '选择线下付款方式',
|
||
'number' => null,
|
||
'payStatus' => (int)sys_config('offline_pay_status', 0) === 1,
|
||
],
|
||
[
|
||
'icon' => 'icon-haoyoudaizhifu',
|
||
'name' => '好友代付',
|
||
'value' => 'friend',
|
||
'title' => '找微信好友支付',
|
||
'number' => null,
|
||
'payStatus' => !!sys_config('friend_pay_status', 0),
|
||
]
|
||
];
|
||
|
||
return app('json')->success($config);
|
||
}
|
||
}
|