for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Yansongda\Pay\Plugin\Wechat\Pay\Common;
use Yansongda\Pay\Exception\Exception;
use Yansongda\Pay\Exception\InvalidParamsException;
use function Yansongda\Pay\get_wechat_config;
use Yansongda\Pay\Plugin\Wechat\GeneralPlugin;
use Yansongda\Pay\Rocket;
class QueryRefundPlugin extends GeneralPlugin
{
/**
* @throws \Yansongda\Pay\Exception\InvalidParamsException
*/
protected function getUri(Rocket $rocket): string
$payload = $rocket->getPayload();
if (is_null($payload->get('out_refund_no'))) {
throw new InvalidParamsException(Exception::MISSING_NECESSARY_PARAMS);
}
return 'v3/refund/domestic/refunds/'.$payload->get('out_refund_no');
* @throws \Yansongda\Pay\Exception\ContainerException
* @throws \Yansongda\Pay\Exception\ServiceNotFoundException
protected function getPartnerUri(Rocket $rocket): string
$config = get_wechat_config($rocket->getParams());
$url = parent::getPartnerUri($rocket);
return $url.'?sub_mchid='.$rocket->getPayload()->get('sub_mchid', $config['sub_mch_id'] ?? '');
protected function getMethod(): string
return 'GET';
protected function doSomething(Rocket $rocket): void
$rocket->setPayload(null);