hospital-applets-api/app/Controller/CallBackController.php

65 lines
2.3 KiB
PHP

<?php
namespace App\Controller;
use App\Constants\HttpEnumCode;
use App\Exception\BusinessException;
use App\Services\BaseService;
use App\Utils\Log;
use Extend\Wechat\WechatPay;
use Hyperf\HttpMessage\Stream\SwooleFileStream;
use Hyperf\HttpMessage\Stream\SwooleStream;
use Psr\Http\Message\ResponseInterface;
class CallBackController extends AbstractController
{
/**
* 患者端微信支付回调
* @return ResponseInterface
* @throws \Throwable
*/
public function patientWxPayCallBack(): ResponseInterface
{
try {
// 处理支付结果事件
$WechatPay = new WechatPay(1);
$app = $WechatPay->createApp();
$server = $app->getServer();
$server->handlePaid(function ($message) {
Log::getInstance()->info("微信患者端支付回调数据:" . json_encode($message,JSON_UNESCAPED_UNICODE));
dump($message);
// $message 为微信推送的通知结果,详看微信官方文档
// 微信支付订单号 $message['transaction_id']
// 商户订单号 $message['out_trade_no']
// 商户号 $message['mchid']
// 具体看微信官方文档...
// 进行业务处理,如存数据库等...
});
// 处理退款结果事件
$server->handleRefunded(function ($message) {
Log::getInstance()->info("微信患者端退款回调数据:" . json_encode($message,JSON_UNESCAPED_UNICODE));
// 同上,$message 详看微信官方文档
// 进行业务处理,如存数据库等...
});
return $server->serve();
}catch (\Exception $e) {
return $this->response->withStatus(500)->withBody(new SwooleStream(strval(json_encode(['code' => 'ERROR', 'message' => $e->getMessage()], JSON_UNESCAPED_UNICODE))));
}
}
// 医生端微信支付回调
public function doctorWxPayCallBack(): ResponseInterface
{
return $this->response->json([]);
}
// im回调
public function imCallBack(){
$request_params = $this->request->all();
Log::getInstance()->info(json_encode($request_params,JSON_UNESCAPED_UNICODE));
}
}