From 564da01ab1395260c2af65149b248409a3689c43 Mon Sep 17 00:00:00 2001 From: Brendan Date: Fri, 21 Oct 2016 10:26:50 -0400 Subject: [PATCH 1/3] Add description to AIM request and update related tests --- src/Message/AIMAbstractRequest.php | 2 ++ tests/AIMGatewayTest.php | 6 +++++- tests/Message/AIMAuthorizeRequestTest.php | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Message/AIMAbstractRequest.php b/src/Message/AIMAbstractRequest.php index 6da15696..17468a34 100644 --- a/src/Message/AIMAbstractRequest.php +++ b/src/Message/AIMAbstractRequest.php @@ -210,6 +210,8 @@ protected function addBillingData(\SimpleXMLElement $data) $req->customer->id = $customer; } + $req->order->description = $this->getDescription(); + /** @var CreditCard $card */ if ($card = $this->getCard()) { // A card is present, so include billing and shipping details diff --git a/tests/AIMGatewayTest.php b/tests/AIMGatewayTest.php index 81a51537..595862ab 100644 --- a/tests/AIMGatewayTest.php +++ b/tests/AIMGatewayTest.php @@ -22,21 +22,25 @@ public function setUp() $this->purchaseOptions = array( 'amount' => '10.00', 'card' => $this->getValidCard(), + 'description' => 'purchase', ); $this->captureOptions = array( 'amount' => '10.00', 'transactionReference' => '12345', + 'description' => 'capture', ); $this->voidOptions = array( 'transactionReference' => '12345', + 'description' => 'void', ); $this->refundOptions = array( 'amount' => '10.00', 'transactionReference' => '12345', - 'card' => $this->getValidCard() + 'card' => $this->getValidCard(), + 'description' => 'refund', ); } diff --git a/tests/Message/AIMAuthorizeRequestTest.php b/tests/Message/AIMAuthorizeRequestTest.php index 245d7098..852a1b3b 100644 --- a/tests/Message/AIMAuthorizeRequestTest.php +++ b/tests/Message/AIMAuthorizeRequestTest.php @@ -41,6 +41,7 @@ public function testGetData() "amount", "payment", "customer", + "order", "billTo", "shipTo", "customerIP", From ef3667060b2d8350aa6c19341866e8dc42b0c4ea Mon Sep 17 00:00:00 2001 From: Jason Judge Date: Thu, 10 Nov 2016 00:07:48 +0000 Subject: [PATCH 2/3] Change postion of the AIM "order" element in the request. The "order" element must come before the "customer" element. Authorize.Net is very fussy about the order in which the XML elements are put together. --- src/Message/AIMAbstractRequest.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Message/AIMAbstractRequest.php b/src/Message/AIMAbstractRequest.php index 96d8c90f..98dacb2d 100644 --- a/src/Message/AIMAbstractRequest.php +++ b/src/Message/AIMAbstractRequest.php @@ -150,6 +150,16 @@ public function getCardReference($serialize = true) return $value; } + public function getInvoiceNumber() + { + return $this->getParameter('invoiceNumber'); + } + + public function setInvoiceNumber($value) + { + return $this->setParameter('invoiceNumber', $value); + } + public function sendData($data) { $headers = array('Content-Type' => 'text/xml; charset=utf-8'); @@ -213,13 +223,17 @@ protected function addBillingData(\SimpleXMLElement $data) /** @var mixed $req */ $req = $data->transactionRequest; + // The order must come before the customer ID. + $req->order->invoiceNumber = $this->getInvoiceNumber(); + $req->order->description = $this->getDescription(); + // Merchant assigned customer ID $customer = $this->getCustomerId(); if (!empty($customer)) { $req->customer->id = $customer; } - $req->order->description = $this->getDescription(); + //$req->order->description = $this->getDescription(); /** @var CreditCard $card */ if ($card = $this->getCard()) { From e719a3a377b371453d0ba862d83b5b7065c18c07 Mon Sep 17 00:00:00 2001 From: Jason Judge Date: Thu, 10 Nov 2016 00:14:41 +0000 Subject: [PATCH 3/3] Position of "order" in tests in relation to "customer". --- tests/Message/AIMAuthorizeRequestTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Message/AIMAuthorizeRequestTest.php b/tests/Message/AIMAuthorizeRequestTest.php index ceb09878..5448905e 100644 --- a/tests/Message/AIMAuthorizeRequestTest.php +++ b/tests/Message/AIMAuthorizeRequestTest.php @@ -43,8 +43,8 @@ public function testGetData() "transactionType", "amount", "payment", - "customer", "order", + "customer", "billTo", "shipTo", "customerIP",