49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Facades\WechatPayService;
|
|
use App\Http\Response\ResponseJson;
|
|
use Exception;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
class WechatPayController extends Controller
|
|
{
|
|
use ResponseJson;
|
|
function mchTransfer(Request $request)
|
|
{
|
|
$rules = [
|
|
"trade_no" => "required",
|
|
"openid" => "required",
|
|
"amount" => "required",
|
|
"remark" => "required"
|
|
];
|
|
$input = $request->all();
|
|
$validator = Validator::make($input, $rules, $messages = [
|
|
'required' => 'The :attribute field is required.',
|
|
]);
|
|
|
|
foreach ($validator->errors()->all() as $message) {
|
|
return $this->failure($message);
|
|
}
|
|
|
|
|
|
$trade_no = $request->trade_no;
|
|
$scene_id = $request->scene_id;
|
|
if (empty($scene_id)) {
|
|
$scene_id = config("wechatpay.screen.commission");
|
|
}
|
|
$openid = $request->openid;
|
|
$amount = $request->amount;
|
|
$remark = $request->remark;
|
|
try {
|
|
$res = WechatPayService::mchTransfer($trade_no, $scene_id, $openid, $amount, $remark, []);
|
|
} catch (Exception $e) {
|
|
return $this->failure($e->getMessage());
|
|
}
|
|
|
|
return $this->success("ok", $res);
|
|
}
|
|
}
|