Skip to content

Commit 723f884

Browse files
committed
expose another method paymentMethodToken instead of using usePaymentMethodToken
1 parent 3b14fa1 commit 723f884

File tree

3 files changed

+46
-12
lines changed

3 files changed

+46
-12
lines changed

src/Message/AbstractRequest.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,14 +269,24 @@ public function setTaxExempt($value)
269269
return $this->setParameter('taxExempt', (bool) $value);
270270
}
271271

272-
public function getUsePaymentMethodToken()
272+
public function getPaymentMethodToken()
273273
{
274-
return $this->getParameter('usePaymentMethodToken');
274+
return $this->getParameter('paymentMethodToken');
275275
}
276276

277-
public function setUsePaymentMethodToken($value)
277+
public function setPaymentMethodToken($value)
278278
{
279-
return $this->setParameter('usePaymentMethodToken', (bool)$value);
279+
return $this->setParameter('paymentMethodToken', $value);
280+
}
281+
282+
public function getPaymentMethodNonce()
283+
{
284+
return $this->getToken();
285+
}
286+
287+
public function setPaymentMethodNonce($value)
288+
{
289+
return $this->setToken($value);
280290
}
281291

282292
/**

src/Message/AuthorizeRequest.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
namespace Omnipay\Braintree\Message;
33

4+
use Omnipay\Common\Exception\InvalidRequestException;
45
use Omnipay\Common\Message\ResponseInterface;
56

67
/**
@@ -12,7 +13,7 @@ class AuthorizeRequest extends AbstractRequest
1213
{
1314
public function getData()
1415
{
15-
$this->validate('amount', 'token');
16+
$this->validate('amount');
1617

1718
$data = [
1819
'amount' => $this->getAmount(),
@@ -40,10 +41,13 @@ public function getData()
4041
'taxExempt' => $this->getTaxExempt(),
4142
];
4243

43-
if ($this->getUsePaymentMethodToken() === true) {
44-
$data['paymentMethodToken'] = $this->getToken();
45-
} else {
44+
// special validation
45+
if ($this->getPaymentMethodToken()) {
46+
$data['paymentMethodToken'] = $this->getPaymentMethodToken();
47+
} elseif($this->getToken()) {
4648
$data['paymentMethodNonce'] = $this->getToken();
49+
} else {
50+
throw new InvalidRequestException("The token (payment nonce) or paymentMethodToken field should be set.");
4751
}
4852

4953
// Remove null values

tests/Message/AuthorizeRequestTest.php

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,28 +51,48 @@ public function testGetData()
5151
$this->assertSame('production', \Braintree_Configuration::environment());
5252
}
5353

54-
public function testPaymentToken()
54+
public function testPaymentMethodToken()
5555
{
5656
$this->request->initialize(
5757
array(
5858
'amount' => '10.00',
59-
'token' => 'abc123',
6059
'transactionId' => '684',
6160
'testMode' => false,
6261
'taxExempt' => false,
6362
'card' => [
6463
'firstName' => 'Kayla',
6564
'shippingCompany' => 'League',
6665
],
67-
'usePaymentMethodToken' => true
66+
'paymentMethodToken' => 'fake-token-123'
6867
)
6968
);
7069

7170
$data = $this->request->getData();
72-
$this->assertSame('abc123', $data['paymentMethodToken']);
71+
$this->assertSame('fake-token-123', $data['paymentMethodToken']);
7372
$this->assertArrayNotHasKey('paymentMethodNonce', $data);
7473
}
7574

75+
public function testPaymentMethodNonce()
76+
{
77+
$this->request->initialize(
78+
array(
79+
'amount' => '10.00',
80+
'transactionId' => '684',
81+
'testMode' => false,
82+
'taxExempt' => false,
83+
'card' => [
84+
'firstName' => 'Kayla',
85+
'shippingCompany' => 'League',
86+
],
87+
'paymentMethodNonce' => 'abc123'
88+
)
89+
);
90+
91+
$data = $this->request->getData();
92+
$this->assertSame('abc123', $data['paymentMethodNonce']);
93+
$this->assertArrayNotHasKey('paymentMethodToken', $data);
94+
}
95+
7696
public function testSandboxEnvironment()
7797
{
7898
$this->request->setTestMode(true);

0 commit comments

Comments
 (0)