Skip to content

Commit 612ac41

Browse files
authored
Merge pull request #76 from thephpleague/feat-qrcode
Add include parameter
2 parents 3dee441 + 2355df8 commit 612ac41

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

src/Message/Request/PurchaseRequest.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,24 @@ public function setSequenceType($value)
9999
return $this->setParameter('sequenceType', $value);
100100
}
101101

102+
/**
103+
* @return string
104+
*/
105+
public function getInclude()
106+
{
107+
return $this->getParameter('include');
108+
}
109+
110+
/**
111+
* @param string $value
112+
* @return $this
113+
*/
114+
public function setInclude($value)
115+
{
116+
return $this->setParameter('include', $value);
117+
}
118+
119+
102120
/**
103121
* @return array
104122
* @throws InvalidRequestException
@@ -155,7 +173,13 @@ public function getData()
155173
*/
156174
public function sendData($data)
157175
{
158-
$response = $this->sendRequest(self::POST, '/payments', $data);
176+
$endpoint = '/payments';
177+
178+
if ($include = $this->getInclude()) {
179+
$endpoint .= '?include=' . $include;
180+
}
181+
182+
$response = $this->sendRequest(self::POST, $endpoint, $data);
159183

160184
return $this->response = new PurchaseResponse($this, $response);
161185
}

tests/Message/PurchaseRequestTest.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,41 @@ public function testSendSuccess()
174174
);
175175
}
176176

177+
public function testSendSuccessWithQrcode()
178+
{
179+
$this->setMockHttpResponse('PurchaseSuccess.txt');
180+
$response = $this->request->setInclude('details.qrCode')->send();
181+
182+
$this->assertEqualRequest(
183+
new Request(
184+
"POST",
185+
"https://api.mollie.com/v2/payments?include=details.qrCode",
186+
[],
187+
'{
188+
"amount":{
189+
"value":"12.00",
190+
"currency":"USD"
191+
},
192+
"description":"Description",
193+
"redirectUrl":"https:\/\/www.example.com\/return",
194+
"method":null,
195+
"metadata":[
196+
"meta"
197+
],
198+
"issuer":"my bank",
199+
"locale":"fr_FR",
200+
"billingEmail":"[email protected]"
201+
}'
202+
),
203+
$this->getMockClient()->getLastRequest()
204+
);
205+
206+
207+
$this->assertInstanceOf(PurchaseResponse::class, $response);
208+
$this->assertFalse($response->isSuccessful());
209+
$this->assertTrue($response->isRedirect());
210+
}
211+
177212
public function testIssuerFailure()
178213
{
179214
$this->setMockHttpResponse('PurchaseIssuerFailure.txt');

0 commit comments

Comments
 (0)