diff --git a/src/API.php b/src/API.php index 4e4d3f8..83bdf37 100644 --- a/src/API.php +++ b/src/API.php @@ -37,28 +37,24 @@ public function __construct(Client $client) */ public function sendBatch(array $messages) { - $body = ''; + $longMessages = []; + /** @var Message\Message $message */ foreach ($messages as $i => $message) { if (!$message instanceof Message\Message) { throw new InvalidArgumentException(); } - $body .= "[{$i}]\n"; - $body .= $message->toINI(); + $longMessages[] = (new Message\LongMessage) + ->setId($i + 1) + ->setDstaddr($message->getDstaddr()) + ->setSmbody($message->getSmbody()) + ->setDlvtime($message->getDlvtime()) + ->setVldtime($message->getVldtime()) + ->setResponse($message->getResponse()); } - $body = trim($body); - - $request = $this->client->newRequest( - 'POST', - $this->client->buildUriWithQuery('/SmSendPost.asp', ['encoding' => 'UTF8']), - 'text/plain', - $body - ); - $response = $this->client->sendRequest($request); - - return $this->parseMessageResponse($response); + return $this->sendLongMessageBatch($longMessages); } /** diff --git a/tests/APITest.php b/tests/APITest.php index 28f294c..2dcbe72 100644 --- a/tests/APITest.php +++ b/tests/APITest.php @@ -49,15 +49,8 @@ public function testSendBatch() ->setSmbody('須知反逆得到勝利時 / 社會纔能進步改革'), ]); - $expectedRequestBody = '[0] -dstaddr=0987654321 -smbody=壓迫孕育反逆 / 反逆產生壓迫 -dlvtime=60 -vldtime=120 -response=https://example.com/callback -[1] -dstaddr=0987654322 -smbody=須知反逆得到勝利時 / 社會纔能進步改革'; + $expectedRequestBody = '1$$0987654321$$60$$120$$$$https://example.com/callback$$壓迫孕育反逆 / 反逆產生壓迫 +2$$0987654322$$$$$$$$$$須知反逆得到勝利時 / 社會纔能進步改革'; $expected = (new Message\Response()) ->addResult(