* * @param string $endpoint * * @throws GatewayException * @throws InvalidArgumentException * @throws InvalidSignException */ public function pay($endpoint, array $payload): Collection { $payload['spbill_create_ip'] = Request::createFromGlobals()->server->get('SERVER_ADDR'); $payload['trade_type'] = $this->getTradeType(); Events::dispatch(new Events\PayStarted('Wechat', 'Scan', $endpoint, $payload)); return $this->preOrder($payload); } /** * Get trade type config. * * @author yansongda */ protected function getTradeType(): string { return 'NATIVE'; } }