jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/365667 )

Change subject: Get HostedCheckout and Payment Status
......................................................................


Get HostedCheckout and Payment Status

Bug: T163948

Change-Id: I27a6a8988bc615abfabd35ccfc02a8de0f4cc2e2
---
M PaymentProviders/Ingenico/HostedCheckoutProvider.php
M PaymentProviders/Ingenico/IngenicoPaymentProvider.php
A PaymentProviders/Ingenico/Tests/Data/hostedPaymentStatus.response
A PaymentProviders/Ingenico/Tests/Data/paymentStatus.response
M PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php
A PaymentProviders/Ingenico/Tests/phpunit/IngenicoPaymentProviderTest.php
6 files changed, 155 insertions(+), 0 deletions(-)

Approvals:
  jenkins-bot: Verified
  Ejegg: Looks good to me, approved



diff --git a/PaymentProviders/Ingenico/HostedCheckoutProvider.php 
b/PaymentProviders/Ingenico/HostedCheckoutProvider.php
index 6f67e8b..5047135 100644
--- a/PaymentProviders/Ingenico/HostedCheckoutProvider.php
+++ b/PaymentProviders/Ingenico/HostedCheckoutProvider.php
@@ -28,6 +28,12 @@
        function getHostedPaymentUrl($partialRedirectUrl) {
                return "https://{$this->subdomain}.$partialRedirectUrl";
        }
+
+       function getHostedPaymentStatus($hostedPaymentId){
+               $path = "hostedcheckouts/$hostedPaymentId";
+               $response = $this->api->makeApiCall($path, 'GET');
+               return $response;
+       }
 }
 
 
diff --git a/PaymentProviders/Ingenico/IngenicoPaymentProvider.php 
b/PaymentProviders/Ingenico/IngenicoPaymentProvider.php
index 5d39ba7..e30a10e 100644
--- a/PaymentProviders/Ingenico/IngenicoPaymentProvider.php
+++ b/PaymentProviders/Ingenico/IngenicoPaymentProvider.php
@@ -18,4 +18,10 @@
                $this->providerConfiguration = 
Context::get()->getProviderConfiguration();
                $this->api = $this->providerConfiguration->object( 'api' );
        }
+
+       public function getPaymentStatus($paymentId){
+               $path = "payments/$paymentId";
+               $response = $this->api->makeApiCall($path, 'GET');
+               return $response;
+       }
 }
diff --git a/PaymentProviders/Ingenico/Tests/Data/hostedPaymentStatus.response 
b/PaymentProviders/Ingenico/Tests/Data/hostedPaymentStatus.response
new file mode 100644
index 0000000..9d35135
--- /dev/null
+++ b/PaymentProviders/Ingenico/Tests/Data/hostedPaymentStatus.response
@@ -0,0 +1,51 @@
+HTTP/1.1 200 OK
+Date: Mon, 30 Jan 2017 17:58:02 GMT
+Server: Apache/2.4.16 (Unix) OpenSSL/1.0.1t
+X-Powered-By: Servlet/3.0 JSP/2.2
+Transfer-Encoding: chunked
+Content-Type: application/json
+
+{
+  "createdPaymentOutput": {
+    "payment": {
+      "id": "000000891566072501680000200001",
+      "paymentOutput": {
+        "amountOfMoney": {
+          "amount": 2345,
+          "currencyCode": "USD"
+        },
+        "references": {
+          "paymentReference": "0"
+        },
+        "paymentMethod": "card",
+        "cardPaymentMethodSpecificOutput": {
+          "paymentProductId": 1,
+          "authorisationCode": "123456",
+          "card": {
+            "cardNumber": "************7977",
+            "expiryDate": "1220"
+          },
+          "fraudResults": {
+            "avsResult": "0",
+            "cvvResult": "M",
+            "fraudServiceResult": "no-advice"
+          }
+        }
+      },
+      "status": "PENDING_APPROVAL",
+      "statusOutput": {
+        "isCancellable": true,
+        "statusCode": 600,
+        "statusCodeChangeDateTime": "20140717145840",
+        "isAuthorized": true
+      }
+    },
+    "paymentCreationReferences": {
+      "additionalReference": "00000089156607250168",
+      "externalReference": "000000891566072501680000200001"
+    },
+    "tokens": ""
+  },
+  "status": "PAYMENT_CREATED"
+}
+
diff --git a/PaymentProviders/Ingenico/Tests/Data/paymentStatus.response 
b/PaymentProviders/Ingenico/Tests/Data/paymentStatus.response
new file mode 100644
index 0000000..216a1cb
--- /dev/null
+++ b/PaymentProviders/Ingenico/Tests/Data/paymentStatus.response
@@ -0,0 +1,43 @@
+HTTP/1.1 200 OK
+Date: Mon, 30 Jan 2017 17:58:02 GMT
+Server: Apache/2.4.16 (Unix) OpenSSL/1.0.1t
+X-Powered-By: Servlet/3.0 JSP/2.2
+Transfer-Encoding: chunked
+Content-Type: application/json
+
+{
+  "id": "000000850010000188180000200001",
+  "paymentOutput":
+  {
+    "amountOfMoney":
+    {
+      "amount": 100,
+      "currencyCode": "EUR"
+    },
+    "references": {
+      "merchantReference": "AcmeOrder0001",
+      "paymentReference": "0"
+    },
+    "paymentMethod": "card",
+    "cardPaymentMethodSpecificOutput": {
+      "paymentProductId": 1,
+      "authorisationCode": "726747",
+      "card": {
+        "cardNumber": "************7977",
+        "expiryDate": "1220"
+      },
+      "fraudResults": {
+        "avsResult": "0",
+        "cvvResult": "0",
+        "fraudServiceResult": "no-advice"
+      }
+    }
+  },
+  "status": "PENDING_APPROVAL",
+  "statusOutput": {
+    "isCancellable": true,
+    "statusCode": 600,
+    "statusCodeChangeDateTime": "20140630154921",
+    "isAuthorized": true
+  }
+}
diff --git 
a/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php 
b/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php
index b504893..96c52bb 100644
--- a/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php
+++ b/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php
@@ -2,6 +2,7 @@
 
 namespace SmashPig\PaymentProviders\Ingenico\Tests;
 
+use PHPUnit_Framework_MockObject_MockObject;
 use SmashPig\PaymentProviders\Ingenico\HostedCheckoutProvider;
 use SmashPig\Tests\BaseSmashPigUnitTestCase;
 
@@ -61,4 +62,17 @@
                $expectedUrl = 'https://payments.test.' . $partialRedirectUrl;
                $this->assertEquals($expectedUrl, $hostedPaymentUrl);
        }
+
+       public function testGetHostedPaymentStatus(){
+               $hostedPaymentId = '8915-28e5b79c889641c8ba770f1ba576c1fe';
+               $this->setUpResponse(__DIR__ . 
"/../Data/hostedPaymentStatus.response", 200);
+               $this->curlWrapper->expects( $this->once() )
+                       ->method( 'execute' )->with(
+                               
$this->equalTo("https://api-sandbox.globalcollect.com/v1/1234/hostedcheckouts/$hostedPaymentId";),
+                               $this->equalTo('GET')
+                       );
+               $response = 
$this->provider->getHostedPaymentStatus($hostedPaymentId);
+               $this->assertEquals('PAYMENT_CREATED', $response['status']);
+
+       }
 }
diff --git 
a/PaymentProviders/Ingenico/Tests/phpunit/IngenicoPaymentProviderTest.php 
b/PaymentProviders/Ingenico/Tests/phpunit/IngenicoPaymentProviderTest.php
new file mode 100644
index 0000000..eaa54a6
--- /dev/null
+++ b/PaymentProviders/Ingenico/Tests/phpunit/IngenicoPaymentProviderTest.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace SmashPig\PaymentProviders\Ingenico\Tests;
+
+use PHPUnit_Framework_MockObject_MockObject;
+use SmashPig\PaymentProviders\Ingenico\IngenicoPaymentProvider;
+use SmashPig\Tests\BaseSmashPigUnitTestCase;
+
+/**
+ * @group Ingenico
+ */
+class IngenicoPaymentProviderTest extends BaseSmashPigUnitTestCase {
+       /**
+        * @var PHPUnit_Framework_MockObject_MockObject
+        */
+       protected $provider;
+
+       public function setUp() {
+               parent::setUp();
+               $this->setProviderConfiguration( 'ingenico' );
+               $this->provider = 
$this->getMockForAbstractClass('\SmashPig\PaymentProviders\Ingenico\IngenicoPaymentProvider');
+       }
+
+       public function testGetPaymentStatus(){
+               $paymentId = '000000850010000188180000200001';
+               $this->setUpResponse(__DIR__ . 
'/../Data/paymentStatus.response', 200);
+               $this->curlWrapper->expects( $this->once() )
+                       ->method( 'execute' )->with(
+                               
$this->equalTo("https://api-sandbox.globalcollect.com/v1/1234/payments/$paymentId";),
+                               $this->equalTo('GET')
+                       );
+               $response = $this->provider->getPaymentStatus($paymentId);
+               $this->assertEquals($paymentId, $response['id']);
+       }
+}
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/365667
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I27a6a8988bc615abfabd35ccfc02a8de0f4cc2e2
Gerrit-PatchSet: 8
Gerrit-Project: wikimedia/fundraising/SmashPig
Gerrit-Branch: master
Gerrit-Owner: Mepps <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to