diff --git a/src/OfficialAccount/DataCube/Client.php b/src/OfficialAccount/DataCube/Client.php index 09485c6cb..099c66f6b 100644 --- a/src/OfficialAccount/DataCube/Client.php +++ b/src/OfficialAccount/DataCube/Client.php @@ -297,6 +297,24 @@ public function memberCardSummary(string $from, string $to, $condSource = 0) return $this->query('datacube/getcardmembercardinfo', $from, $to, $ext); } + /** + * 拉取单张会员卡数据接口. + * + * @param string $from + * @param string $to + * @param string $cardId + * + * @return mixed + */ + public function memberCardSummaryById(string $from, string $to, string $cardId) + { + $ext = [ + 'card_id' => $cardId, + ]; + + return $this->query('datacube/getcardmembercarddetail', $from, $to, $ext); + } + /** * 查询数据. * diff --git a/tests/OfficialAccount/DataCube/ClientTest.php b/tests/OfficialAccount/DataCube/ClientTest.php index bfcefe069..92840b8b3 100644 --- a/tests/OfficialAccount/DataCube/ClientTest.php +++ b/tests/OfficialAccount/DataCube/ClientTest.php @@ -203,6 +203,17 @@ public function testMemberCardSummary() $this->assertSame('mock-result', $client->memberCardSummary('2017-08-02', '2017-08-10', '67')); } + public function testMemberCardSummaryById() + { + $client = $this->mockApiClient(Client::class, ['query']); + + $client->expects()->query('datacube/getcardmembercarddetail', '2017-08-02', '2017-08-10', [ + 'card_id' => 'mock-card_id', + ])->andReturn('mock-result')->once(); + + $this->assertSame('mock-result', $client->memberCardSummaryById('2017-08-02', '2017-08-10', 'mock-card_id')); + } + public function testQuery() { $client = $this->mockApiClient(Client::class)->makePartial();