File manager - Edit - /home/opticamezl/www/newok/cardsave.tar
Back
.travis.yml 0000604 00000000372 15173205645 0006663 0 ustar 00 language: php php: - 5.3 - 5.4 - 5.5 - 5.6 - hhvm matrix: allow_failures: - php: hhvm before_script: - composer install -n --dev --prefer-source script: vendor/bin/phpcs --standard=PSR2 src && vendor/bin/phpunit --coverage-text src/Message/PurchaseRequest.php 0000604 00000010567 15173205645 0012570 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use DOMDocument; use SimpleXMLElement; use Omnipay\Common\Message\AbstractRequest; /** * CardSave Purchase Request */ class PurchaseRequest extends AbstractRequest { protected $endpoint = 'https://gw1.cardsaveonlinepayments.com:4430/'; protected $namespace = 'https://www.thepaymentgateway.net/'; public function getMerchantId() { return $this->getParameter('merchantId'); } public function setMerchantId($value) { return $this->setParameter('merchantId', $value); } public function getPassword() { return $this->getParameter('password'); } public function setPassword($value) { return $this->setParameter('password', $value); } public function getData() { $this->validate('amount', 'card'); $this->getCard()->validate(); $data = new SimpleXMLElement('<CardDetailsTransaction/>'); $data->addAttribute('xmlns', $this->namespace); $data->PaymentMessage->MerchantAuthentication['MerchantID'] = $this->getMerchantId(); $data->PaymentMessage->MerchantAuthentication['Password'] = $this->getPassword(); $data->PaymentMessage->TransactionDetails['Amount'] = $this->getAmountInteger(); $data->PaymentMessage->TransactionDetails['CurrencyCode'] = $this->getCurrencyNumeric(); $data->PaymentMessage->TransactionDetails->OrderID = $this->getTransactionId(); $data->PaymentMessage->TransactionDetails->OrderDescription = $this->getDescription(); $data->PaymentMessage->TransactionDetails->MessageDetails['TransactionType'] = 'SALE'; $data->PaymentMessage->CardDetails->CardName = $this->getCard()->getName(); $data->PaymentMessage->CardDetails->CardNumber = $this->getCard()->getNumber(); $data->PaymentMessage->CardDetails->ExpiryDate['Month'] = $this->getCard()->getExpiryDate('m'); $data->PaymentMessage->CardDetails->ExpiryDate['Year'] = $this->getCard()->getExpiryDate('y'); $data->PaymentMessage->CardDetails->CV2 = $this->getCard()->getCvv(); if ($this->getCard()->getIssueNumber()) { $data->PaymentMessage->CardDetails->IssueNumber = $this->getCard()->getIssueNumber(); } if ($this->getCard()->getStartMonth() && $this->getCard()->getStartYear()) { $data->PaymentMessage->CardDetails->StartDate['Month'] = $this->getCard()->getStartDate('m'); $data->PaymentMessage->CardDetails->StartDate['Year'] = $this->getCard()->getStartDate('y'); } $data->PaymentMessage->CustomerDetails->BillingAddress->Address1 = $this->getCard()->getAddress1(); $data->PaymentMessage->CustomerDetails->BillingAddress->Address2 = $this->getCard()->getAddress2(); $data->PaymentMessage->CustomerDetails->BillingAddress->City = $this->getCard()->getCity(); $data->PaymentMessage->CustomerDetails->BillingAddress->PostCode = $this->getCard()->getPostcode(); $data->PaymentMessage->CustomerDetails->BillingAddress->State = $this->getCard()->getState(); // requires numeric country code // $data->PaymentMessage->CustomerDetails->BillingAddress->CountryCode = $this->getCard()->getCountryNumeric; $data->PaymentMessage->CustomerDetails->CustomerIPAddress = $this->getClientIp(); return $data; } public function sendData($data) { // the PHP SOAP library sucks, and SimpleXML can't append element trees // TODO: find PSR-0 SOAP library $document = new DOMDocument('1.0', 'utf-8'); $envelope = $document->appendChild( $document->createElementNS('http://schemas.xmlsoap.org/soap/envelope/', 'soap:Envelope') ); $envelope->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); $envelope->setAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema'); $body = $envelope->appendChild($document->createElement('soap:Body')); $body->appendChild($document->importNode(dom_import_simplexml($data), true)); // post to Cardsave $headers = array( 'Content-Type' => 'text/xml; charset=utf-8', 'SOAPAction' => $this->namespace.$data->getName()); $httpResponse = $this->httpClient->post($this->endpoint, $headers, $document->saveXML())->send(); return $this->response = new Response($this, $httpResponse->getBody()); } } src/Message/RefundRequest.php 0000604 00000003101 15173205645 0012223 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use DOMDocument; use SimpleXMLElement; /** * CardSave Purchase Request */ class RefundRequest extends PurchaseRequest { public $transactionType = 'REFUND'; public function getData() { $this->validate('transactionReference', 'amount', 'currency'); $data = new SimpleXMLElement('<CrossReferenceTransaction/>'); $data->addAttribute('xmlns', $this->namespace); $data->PaymentMessage->MerchantAuthentication['MerchantID'] = $this->getMerchantId(); $data->PaymentMessage->MerchantAuthentication['Password'] = $this->getPassword(); $data->PaymentMessage->TransactionDetails['Amount'] = $this->getAmountInteger(); $data->PaymentMessage->TransactionDetails['CurrencyCode'] = $this->getCurrencyNumeric(); $data->PaymentMessage->TransactionDetails->OrderID = $this->getTransactionId(); $data->PaymentMessage->TransactionDetails->OrderDescription = $this->getDescription(); $data->PaymentMessage->TransactionDetails->MessageDetails['TransactionType'] = $this->transactionType; $data->PaymentMessage->TransactionDetails->MessageDetails['NewTransaction'] = false; $data->PaymentMessage->TransactionDetails->MessageDetails['CrossReference'] = $this->getTransactionReference(); // requires numeric country code // $data->PaymentMessage->CustomerDetails->BillingAddress->CountryCode = $this->getCard()->getCountryNumeric; $data->PaymentMessage->CustomerDetails->CustomerIPAddress = $this->getClientIp(); return $data; } } src/Message/Response.php 0000604 00000004153 15173205645 0011235 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use DOMDocument; use Omnipay\Common\Exception\InvalidResponseException; use Omnipay\Common\Message\AbstractResponse; use Omnipay\Common\Message\RedirectResponseInterface; use Omnipay\Common\Message\RequestInterface; /** * CardSave Response */ class Response extends AbstractResponse implements RedirectResponseInterface { public function __construct(RequestInterface $request, $data) { $this->request = $request; // we only care about the content of the soap:Body element $responseDom = new DOMDocument; $responseDom->loadXML($data); $this->data = simplexml_import_dom($responseDom->documentElement->firstChild->firstChild); $resultElement = $this->getResultElement(); if (!isset($resultElement->StatusCode)) { throw new InvalidResponseException; } } public function getResultElement() { $resultElement = preg_replace('/Response$/', 'Result', $this->data->getName()); return $this->data->$resultElement; } public function isSuccessful() { return 0 === (int) $this->getResultElement()->StatusCode; } public function isRedirect() { return 3 === (int) $this->getResultElement()->StatusCode; } public function getTransactionReference() { return (string) $this->data->TransactionOutputData['CrossReference']; } public function getMessage() { return (string) $this->getResultElement()->Message; } public function getRedirectUrl() { if ($this->isRedirect()) { return (string) $this->data->TransactionOutputData->ThreeDSecureOutputData->ACSURL; } } public function getRedirectMethod() { return 'POST'; } public function getRedirectData() { return $redirectData = array( 'PaReq' => (string) $this->data->TransactionOutputData->ThreeDSecureOutputData->PaREQ, 'TermUrl' => $this->getRequest()->getReturnUrl(), 'MD' => (string) $this->data->TransactionOutputData['CrossReference'], ); } } src/Message/ReferencedPurchaseRequest.php 0000604 00000000261 15173205645 0014541 0 ustar 00 <?php namespace Omnipay\CardSave\Message; /** * CardSave Purchase Request */ class ReferencedPurchaseRequest extends RefundRequest { public $transactionType = 'SALE'; } src/Message/CompletePurchaseRequest.php 0000604 00000001732 15173205645 0014253 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use SimpleXMLElement; use Omnipay\Common\Exception\InvalidResponseException; /** * CardSave Complete Purchase Request */ class CompletePurchaseRequest extends PurchaseRequest { public function getData() { $md = $this->httpRequest->request->get('MD'); $paRes = $this->httpRequest->request->get('PaRes'); if (empty($md) || empty($paRes)) { throw new InvalidResponseException; } $data = new SimpleXMLElement('<ThreeDSecureAuthentication/>'); $data->addAttribute('xmlns', $this->namespace); $data->ThreeDSecureMessage->MerchantAuthentication['MerchantID'] = $this->getMerchantId(); $data->ThreeDSecureMessage->MerchantAuthentication['Password'] = $this->getPassword(); $data->ThreeDSecureMessage->ThreeDSecureInputData['CrossReference'] = $md; $data->ThreeDSecureMessage->ThreeDSecureInputData->PaRES = $paRes; return $data; } } src/Gateway.php 0000604 00000003131 15173205645 0007447 0 ustar 00 <?php namespace Omnipay\CardSave; use Omnipay\CardSave\Message\CompletePurchaseRequest; use Omnipay\CardSave\Message\PurchaseRequest; use Omnipay\Common\AbstractGateway; /** * CardSave Gateway * * @link http://www.cardsave.net/dev-downloads */ class Gateway extends AbstractGateway { public function getName() { return 'CardSave'; } public function getDefaultParameters() { return array( 'merchantId' => '', 'password' => '', ); } public function getMerchantId() { return $this->getParameter('merchantId'); } public function setMerchantId($value) { return $this->setParameter('merchantId', $value); } public function getPassword() { return $this->getParameter('password'); } public function setPassword($value) { return $this->setParameter('password', $value); } public function purchase(array $parameters = array()) { return $this->createRequest('\Omnipay\CardSave\Message\PurchaseRequest', $parameters); } public function referencedPurchase(array $parameters = array()) { return $this->createRequest('\Omnipay\CardSave\Message\ReferencedPurchaseRequest', $parameters); } public function completePurchase(array $parameters = array()) { return $this->createRequest('\Omnipay\CardSave\Message\CompletePurchaseRequest', $parameters); } public function refund(array $parameters = array()) { return $this->createRequest('\Omnipay\CardSave\Message\RefundRequest', $parameters); } } tests/Mock/PurchaseFailure.txt 0000604 00000001601 15173205645 0012424 0 ustar 00 HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Length: 689 Content-Type: text/xml; charset=utf-8 Node: VENUS X-Powered-By: ASP.NET X-AspNet-Version: 4.0.30319 Date: Fri, 15 Feb 2013 14:06:34 GMT <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><CardDetailsTransactionResponse xmlns="https://www.thepaymentgateway.net/"><CardDetailsTransactionResult AuthorisationAttempted="False"><StatusCode>30</StatusCode><Message>Input variable errors</Message><ErrorMessages><MessageDetail><Detail>Required variable (PaymentMessage.TransactionDetails.OrderID) is missing</Detail></MessageDetail></ErrorMessages></CardDetailsTransactionResult><TransactionOutputData /></CardDetailsTransactionResponse></soap:Body></soap:Envelope> tests/Mock/PurchaseFailureWithoutStatusCode.txt 0000604 00000001546 15173205645 0016017 0 ustar 00 HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Length: 689 Content-Type: text/xml; charset=utf-8 Node: VENUS X-Powered-By: ASP.NET X-AspNet-Version: 4.0.30319 Date: Fri, 15 Feb 2013 14:06:34 GMT <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><CardDetailsTransactionResponse xmlns="https://www.thepaymentgateway.net/"><CardDetailsTransactionResult AuthorisationAttempted="False"><Message>Input variable errors</Message><ErrorMessages><MessageDetail><Detail>Required variable (PaymentMessage.TransactionDetails.OrderID) is missing</Detail></MessageDetail></ErrorMessages></CardDetailsTransactionResult><TransactionOutputData /></CardDetailsTransactionResponse></soap:Body></soap:Envelope> tests/Mock/PurchaseSuccess.txt 0000604 00000002200 15173205645 0012441 0 ustar 00 HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Length: 944 Content-Type: text/xml; charset=utf-8 Node: VENUS X-Powered-By: ASP.NET X-AspNet-Version: 4.0.30319 Date: Fri, 15 Feb 2013 14:10:53 GMT <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><CardDetailsTransactionResponse xmlns="https://www.thepaymentgateway.net/"><CardDetailsTransactionResult AuthorisationAttempted="True"><StatusCode>0</StatusCode><Message>AuthCode: 672167</Message></CardDetailsTransactionResult><TransactionOutputData CrossReference="130215141054377801316798"><AuthCode>672167</AuthCode><ThreeDSecureAuthenticationCheckResult>NOT_ENROLLED</ThreeDSecureAuthenticationCheckResult><GatewayEntryPoints><GatewayEntryPoint EntryPointURL="https://gw1.cardsaveonlinepayments.com:4430/" Metric="100" /><GatewayEntryPoint EntryPointURL="https://gw2.cardsaveonlinepayments.com:4430/" Metric="200" /></GatewayEntryPoints></TransactionOutputData></CardDetailsTransactionResponse></soap:Body></soap:Envelope> tests/Mock/PurchaseRedirect.txt 0000604 00000002364 15173205645 0012605 0 ustar 00 HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Length: 944 Content-Type: text/xml; charset=utf-8 Node: VENUS X-Powered-By: ASP.NET X-AspNet-Version: 4.0.30319 Date: Fri, 15 Feb 2013 14:10:53 GMT <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><CardDetailsTransactionResponse xmlns="https://www.thepaymentgateway.net/"><CardDetailsTransactionResult AuthorisationAttempted="True"><StatusCode>3</StatusCode><Message>AuthCode: 672167</Message></CardDetailsTransactionResult><TransactionOutputData CrossReference="130215141054377801316798"><AuthCode>672167</AuthCode><ThreeDSecureOutputData><ACSURL>http://some.redirect.com/</ACSURL><PaREQ>Some PaREQ</PaREQ></ThreeDSecureOutputData><ThreeDSecureAuthenticationCheckResult>NOT_ENROLLED</ThreeDSecureAuthenticationCheckResult><GatewayEntryPoints><GatewayEntryPoint EntryPointURL="https://gw1.cardsaveonlinepayments.com:4430/" Metric="100" /><GatewayEntryPoint EntryPointURL="https://gw2.cardsaveonlinepayments.com:4430/" Metric="200" /></GatewayEntryPoints></TransactionOutputData></CardDetailsTransactionResponse></soap:Body></soap:Envelope> tests/Message/ResponseTest.php 0000604 00000004215 15173205645 0012447 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use Mockery as m; use Omnipay\Tests\TestCase; class ResponseTest extends TestCase { /** * @expectedException \Omnipay\Common\Exception\InvalidResponseException */ public function testPurchaseWithoutStatusCode() { $httpResponse = $this->getMockHttpResponse('PurchaseFailureWithoutStatusCode.txt'); new Response($this->getMockRequest(), $httpResponse->getBody()); } public function testPurchaseSuccess() { $httpResponse = $this->getMockHttpResponse('PurchaseSuccess.txt'); $response = new Response($this->getMockRequest(), $httpResponse->getBody()); $this->assertTrue($response->isSuccessful()); $this->assertEquals('130215141054377801316798', $response->getTransactionReference()); $this->assertSame('AuthCode: 672167', $response->getMessage()); $this->assertEmpty($response->getRedirectUrl()); } public function testPurchaseFailure() { $httpResponse = $this->getMockHttpResponse('PurchaseFailure.txt'); $response = new Response($this->getMockRequest(), $httpResponse->getBody()); $this->assertFalse($response->isSuccessful()); $this->assertSame('', $response->getTransactionReference()); $this->assertSame('Input variable errors', $response->getMessage()); } public function testRedirect() { $httpResponse = $this->getMockHttpResponse('PurchaseRedirect.txt'); $request = m::mock('\Omnipay\Common\Message\AbstractRequest'); $request->shouldReceive('getReturnUrl')->once()->andReturn('http://store.example.com/'); $response = new Response($request, $httpResponse->getBody()); $this->assertTrue($response->isRedirect()); $this->assertSame('POST', $response->getRedirectMethod()); $this->assertSame('http://some.redirect.com/', $response->getRedirectUrl()); $expectedData = array( 'PaReq' => 'Some PaREQ', 'TermUrl' => 'http://store.example.com/', 'MD' => '130215141054377801316798', ); $this->assertEquals($expectedData, $response->getRedirectData()); } } tests/Message/RefundRequestTest.php 0000604 00000002250 15173205645 0013442 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use Omnipay\Tests\TestCase; class RefundRequestTest extends TestCase { public function setUp() { parent::setUp(); $this->request = new RefundRequest($this->getHttpClient(), $this->getHttpRequest()); $this->request->initialize( array( 'amount' => '12.00', 'transactionReference' => '0987654345678900987654', 'currency' => 'GBP', 'testMode' => true, ) ); } public function testGetData() { $data = $this->request->getData(); /* * See https://bugs.php.net/bug.php?id=29500 for why this is cast to string */ $this->assertSame('REFUND', (string)$data->PaymentMessage->TransactionDetails->MessageDetails['TransactionType']); $this->assertSame('1200', (string)$data->PaymentMessage->TransactionDetails['Amount']); $this->assertSame('826', (string)$data->PaymentMessage->TransactionDetails['CurrencyCode']); $this->assertSame('0987654345678900987654', (string)$data->PaymentMessage->TransactionDetails->MessageDetails['CrossReference']); } } tests/Message/ReferencedPurchaseRequestTest.php 0000604 00000002276 15173205645 0015764 0 ustar 00 <?php namespace Omnipay\CardSave\Message; use Omnipay\Tests\TestCase; class ReferencedPurchaseRequestTest extends TestCase { public function setUp() { parent::setUp(); $this->request = new ReferencedPurchaseRequest($this->getHttpClient(), $this->getHttpRequest()); $this->request->initialize( array( 'amount' => '12.00', 'transactionReference' => '0987654345678900987654', 'currency' => 'GBP', 'testMode' => true, ) ); } public function testGetData() { $data = $this->request->getData(); /* * See https://bugs.php.net/bug.php?id=29500 for why this is cast to string */ $this->assertSame('SALE', (string)$data->PaymentMessage->TransactionDetails->MessageDetails['TransactionType']); $this->assertSame('1200', (string)$data->PaymentMessage->TransactionDetails['Amount']); $this->assertSame('826', (string)$data->PaymentMessage->TransactionDetails['CurrencyCode']); $this->assertSame('0987654345678900987654', (string)$data->PaymentMessage->TransactionDetails->MessageDetails['CrossReference']); } } tests/GatewayTest.php 0000604 00000003053 15173205645 0010665 0 ustar 00 <?php namespace Omnipay\CardSave; use Omnipay\Common\CreditCard; use Omnipay\Tests\GatewayTestCase; class GatewayTest extends GatewayTestCase { public function setUp() { parent::setUp(); $this->gateway = new Gateway($this->getHttpClient(), $this->getHttpRequest()); $this->options = array( 'amount' => '10.00', 'returnUrl' => 'https://www.example.com/return', 'card' => new CreditCard(array( 'firstName' => 'Example', 'lastName' => 'User', 'number' => '4111111111111111', 'expiryMonth' => '12', 'expiryYear' => '2016', 'cvv' => '123', 'issueNumber' => '5', 'startMonth' => '4', 'startYear' => '2013', )), ); } public function testPurchase() { $this->setMockHttpResponse('PurchaseSuccess.txt'); $response = $this->gateway->purchase($this->options)->send(); $this->assertInstanceOf('\Omnipay\CardSave\Message\Response', $response); $this->assertTrue($response->isSuccessful()); $this->assertEquals('130215141054377801316798', $response->getTransactionReference()); } public function testPurchaseError() { $this->setMockHttpResponse('PurchaseFailure.txt'); $response = $this->gateway->purchase($this->options)->send(); $this->assertFalse($response->isSuccessful()); $this->assertSame('Input variable errors', $response->getMessage()); } } CONTRIBUTING.md 0000604 00000001040 15173205645 0006774 0 ustar 00 # Contributing Guidelines * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Commit just the modifications, do not mess with the composer.json or CHANGELOG.md files. * Ensure your code is nicely formatted in the [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) style and that all tests pass. * Send the pull request. * Check that the Travis CI build passed. If not, rinse and repeat. composer.json 0000604 00000001677 15173205645 0007305 0 ustar 00 { "name": "omnipay/cardsave", "type": "library", "description": "CardSave driver for the Omnipay payment processing library", "keywords": [ "card save", "cardsave", "gateway", "merchant", "omnipay", "pay", "payment" ], "homepage": "https://github.com/thephpleague/omnipay-cardsave", "license": "MIT", "authors": [ { "name": "Adrian Macneil", "email": "adrian@adrianmacneil.com" }, { "name": "Omnipay Contributors", "homepage": "https://github.com/thephpleague/omnipay-cardsave/contributors" } ], "autoload": { "psr-4": { "Omnipay\\CardSave\\" : "src/" } }, "require": { "omnipay/common": "~2.0" }, "require-dev": { "omnipay/tests": "~2.0" }, "extra": { "branch-alias": { "dev-master": "2.0.x-dev" } } } LICENSE 0000604 00000002047 15173205645 0005560 0 ustar 00 Copyright (c) 2012-2013 Adrian Macneil Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. phpunit.xml.dist 0000604 00000001512 15173205645 0007722 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false"> <testsuites> <testsuite name="Omnipay Test Suite"> <directory>./tests/</directory> </testsuite> </testsuites> <listeners> <listener class="Mockery\Adapter\Phpunit\TestListener" file="vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php" /> </listeners> <filter> <whitelist> <directory>./src</directory> </whitelist> </filter> </phpunit> .gitignore 0000604 00000000060 15173205645 0006534 0 ustar 00 /vendor composer.lock composer.phar phpunit.xml README.md 0000604 00000003533 15173205645 0006033 0 ustar 00 # Omnipay: CardSave **CardSave driver for the Omnipay PHP payment processing library** [](https://travis-ci.org/thephpleague/omnipay-cardsave) [](https://packagist.org/packages/omnipay/cardsave) [](https://packagist.org/packages/omnipay/cardsave) [Omnipay](https://github.com/thephpleague/omnipay) is a framework agnostic, multi-gateway payment processing library for PHP 5.3+. This package implements CardSave support for Omnipay. ## Installation Omnipay is installed via [Composer](http://getcomposer.org/). To install, simply add it to your `composer.json` file: ```json { "require": { "omnipay/cardsave": "~2.0" } } ``` And run composer to update your dependencies: $ curl -s http://getcomposer.org/installer | php $ php composer.phar update ## Basic Usage The following gateways are provided by this package: * CardSave For general usage instructions, please see the main [Omnipay](https://github.com/thephpleague/omnipay) repository. ## Support If you are having general issues with Omnipay, we suggest posting on [Stack Overflow](http://stackoverflow.com/). Be sure to add the [omnipay tag](http://stackoverflow.com/questions/tagged/omnipay) so it can be easily found. If you want to keep up to date with release anouncements, discuss ideas for the project, or ask more detailed questions, there is also a [mailing list](https://groups.google.com/forum/#!forum/omnipay) which you can subscribe to. If you believe you have found a bug, please report it using the [GitHub issue tracker](https://github.com/thephpleague/omnipay-cardsave/issues), or better yet, fork the library and submit a pull request.
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Generation time: 0 |
proxy
|
phpinfo
|
Settings