<?php namespace Yansongda\Pay\Gateways\Wechat; use Yansongda\Pay\Events; use Yansongda\Pay\Exceptions\GatewayException; use Yansongda\Pay\Exceptions\InvalidArgumentException; use Yansongda\Pay\Exceptions\InvalidSignException; use Yansongda\Supports\Collection; class PosGateway extends Gateway { /** * Pay an order. * * @author yansongda <me@yansongda.cn> * * @param string $endpoint * * @throws GatewayException * @throws InvalidArgumentException * @throws InvalidSignException */ public function pay($endpoint, array $payload): Collection { unset($payload['trade_type'], $payload['notify_url']); $payload['sign'] = Support::generateSign($payload); Events::dispatch(new Events\PayStarted('Wechat', 'Pos', $endpoint, $payload)); return Support::requestApi('pay/micropay', $payload); } /** * Get trade type config. * * @author yansongda <me@yansongda.cn> */ protected function getTradeType(): string { return 'MICROPAY'; } }