File manager - Edit - /home/opticamezl/www/newok/migs.tar
Back
LICENSE 0000604 00000002047 15173232050 0005546 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. README.md 0000604 00000003554 15173232050 0006024 0 ustar 00 # Omnipay: MIGS **MasterCard Internet Gateway Service (MIGS) driver for the Omnipay PHP payment processing library** [](https://travis-ci.org/thephpleague/omnipay-migs) [](https://packagist.org/packages/omnipay/migs) [](https://packagist.org/packages/omnipay/migs) [Omnipay](https://github.com/thephpleague/omnipay) is a framework agnostic, multi-gateway payment processing library for PHP 5.3+. This package implements MIGS 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/migs": "~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: * Migs_TwoParty * Migs_ThreeParty 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-migs/issues), or better yet, fork the library and submit a pull request. src/TwoPartyGateway.php 0000604 00000002555 15173232050 0011160 0 ustar 00 <?php namespace Omnipay\Migs; use Omnipay\Common\AbstractGateway; /** * MIGS Gateway * * @link http://www.anz.com/australia/business/merchant/pdf/VPC-Dev-Kit-Integration-Notes.pdf */ class TwoPartyGateway extends AbstractGateway { public function getName() { return 'MIGS 2-Party'; } public function getDefaultParameters() { return array( 'merchantId' => '', 'merchantAccessCode' => '', 'secureHash' => '' ); } public function getMerchantId() { return $this->getParameter('merchantId'); } public function setMerchantId($value) { return $this->setParameter('merchantId', $value); } public function getMerchantAccessCode() { return $this->getParameter('merchantAccessCode'); } public function setMerchantAccessCode($value) { return $this->setParameter('merchantAccessCode', $value); } public function getSecureHash() { return $this->getParameter('secureHash'); } public function setSecureHash($value) { return $this->setParameter('secureHash', $value); } public function purchase(array $parameters = array()) { return $this->createRequest('\Omnipay\Migs\Message\TwoPartyPurchaseRequest', $parameters); } } src/Message/ThreePartyCompletePurchaseRequest.php 0000604 00000001330 15173232050 0016243 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Common\Exception\InvalidRequestException; /** * Migs Complete Purchase Request */ class ThreePartyCompletePurchaseRequest extends AbstractRequest { public function getData() { $data = $this->httpRequest->query->all(); $hash = isset($data['vpc_SecureHash']) ? $data['vpc_SecureHash'] : null; if ($this->calculateHash($data) !== $hash) { throw new InvalidRequestException('Incorrect hash'); } return $data; } public function sendData($data) { return $this->response = new Response($this, $data); } public function getEndpoint() { return $this->endpoint.'vpcpay'; } } src/Message/Response.php 0000604 00000001516 15173232050 0011223 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Common\Message\AbstractResponse; use Omnipay\Common\Message\RequestInterface; /** * Migs Purchase Response */ class Response extends AbstractResponse { public function __construct(RequestInterface $request, $data) { if (!is_array($data)) { parse_str($data, $data); } parent::__construct($request, $data); } public function isSuccessful() { return isset($this->data['vpc_TxnResponseCode']) && "0" === $this->data['vpc_TxnResponseCode']; } public function getTransactionReference() { return isset($this->data['vpc_ReceiptNo']) ? $this->data['vpc_ReceiptNo'] : null; } public function getMessage() { return isset($this->data['vpc_Message']) ? $this->data['vpc_Message'] : null; } } src/Message/ThreePartyPurchaseResponse.php 0000604 00000001615 15173232050 0014726 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Common\Message\AbstractResponse; use Omnipay\Common\Message\RequestInterface; use Omnipay\Common\Message\RedirectResponseInterface; /** * Migs Purchase Response */ class ThreePartyPurchaseResponse extends AbstractResponse implements RedirectResponseInterface { protected $redirectUrl; public function __construct(RequestInterface $request, $data, $redirectUrl) { parent::__construct($request, $data); $this->redirectUrl = $redirectUrl; } public function isSuccessful() { return false; } public function isRedirect() { return true; } public function getRedirectUrl() { return $this->redirectUrl; } public function getRedirectMethod() { return 'GET'; } public function getRedirectData() { return $this->getData(); } } src/Message/ThreePartyPurchaseRequest.php 0000604 00000001276 15173232050 0014563 0 ustar 00 <?php namespace Omnipay\Migs\Message; /** * Migs Purchase Request */ class ThreePartyPurchaseRequest extends AbstractRequest { protected $action = 'pay'; public function getData() { $this->validate('amount', 'returnUrl', 'transactionId'); $data = $this->getBaseData(); $data['vpc_SecureHash'] = $this->calculateHash($data); return $data; } public function sendData($data) { $redirectUrl = $this->getEndpoint().'?'.http_build_query($data); return $this->response = new ThreePartyPurchaseResponse($this, $data, $redirectUrl); } public function getEndpoint() { return $this->endpoint.'vpcpay'; } } src/Message/AbstractRequest.php 0000604 00000003534 15173232050 0012543 0 ustar 00 <?php namespace Omnipay\Migs\Message; /** * GoCardless Abstract Request */ abstract class AbstractRequest extends \Omnipay\Common\Message\AbstractRequest { protected $endpoint = 'https://migs.mastercard.com.au/'; public function getMerchantId() { return $this->getParameter('merchantId'); } public function setMerchantId($value) { return $this->setParameter('merchantId', $value); } public function getMerchantAccessCode() { return $this->getParameter('merchantAccessCode'); } public function setMerchantAccessCode($value) { return $this->setParameter('merchantAccessCode', $value); } public function getSecureHash() { return $this->getParameter('secureHash'); } public function setSecureHash($value) { return $this->setParameter('secureHash', $value); } protected function getBaseData() { $data = array(); $data['vpc_Merchant'] = $this->getMerchantId(); $data['vpc_AccessCode'] = $this->getMerchantAccessCode(); $data['vpc_Version'] = '1'; $data['vpc_Locale'] = 'en'; $data['vpc_Command'] = $this->action; $data['vpc_Amount'] = $this->getAmountInteger(); $data['vpc_MerchTxnRef'] = $this->getTransactionId(); $data['vpc_OrderInfo'] = $this->getDescription(); $data['vpc_ReturnURL'] = $this->getReturnUrl(); return $data; } public function getEndpoint() { return $this->endpoint; } public function calculateHash($data) { ksort($data); $hash = $this->getSecureHash(); foreach ($data as $k => $v) { if (substr($k, 0, 4) === 'vpc_' && $k !== 'vpc_SecureHash') { $hash .= $v; } } return strtoupper(md5($hash)); } } src/Message/TwoPartyPurchaseRequest.php 0000604 00000001654 15173232050 0014265 0 ustar 00 <?php namespace Omnipay\Migs\Message; /** * Migs Purchase Request */ class TwoPartyPurchaseRequest extends AbstractRequest { protected $action = 'pay'; public function getData() { $this->validate('amount', 'transactionId', 'card'); $this->getCard()->validate(); $data = $this->getBaseData(); $data['vpc_CardNum'] = $this->getCard()->getNumber(); $data['vpc_CardExp'] = $this->getCard()->getExpiryDate('ym'); $data['vpc_CardSecurityCode'] = $this->getCard()->getCvv(); $data['vpc_SecureHash'] = $this->calculateHash($data); return $data; } public function sendData($data) { $httpResponse = $this->httpClient->post($this->getEndpoint(), null, $data)->send(); return $this->response = new Response($this, $httpResponse->getBody()); } public function getEndpoint() { return $this->endpoint.'vpcdps'; } } src/ThreePartyGateway.php 0000604 00000001176 15173232050 0011454 0 ustar 00 <?php namespace Omnipay\Migs; /** * MIGS Gateway * * @link http://www.anz.com/australia/business/merchant/pdf/VPC-Dev-Kit-Integration-Notes.pdf */ class ThreePartyGateway extends TwoPartyGateway { public function getName() { return 'MIGS 3-Party'; } public function purchase(array $parameters = array()) { return $this->createRequest('\Omnipay\Migs\Message\ThreePartyPurchaseRequest', $parameters); } public function completePurchase(array $parameters = array()) { return $this->createRequest('\Omnipay\Migs\Message\ThreePartyCompletePurchaseRequest', $parameters); } } .gitignore 0000604 00000000060 15173232050 0006522 0 ustar 00 /vendor composer.lock composer.phar phpunit.xml .travis.yml 0000604 00000000317 15173232050 0006650 0 ustar 00 language: php php: - 5.3 - 5.4 - 5.5 - 5.6 - hhvm before_script: - composer install -n --dev --prefer-source script: vendor/bin/phpcs --standard=PSR2 src && vendor/bin/phpunit --coverage-text tests/Message/ThreePartyPurchaseRequestTest.php 0000604 00000003632 15173232050 0015774 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Tests\TestCase; class ThreePartyPurchaseRequestTest extends TestCase { public function setUp() { $this->request = new ThreePartyPurchaseRequest($this->getHttpClient(), $this->getHttpRequest()); } public function testSignature() { $this->request->initialize( array( 'amount' => '12.00', 'transactionId' => 123, 'returnUrl' => 'https://www.example.com/return', 'merchantId' => '123', 'merchantAccessCode' => '123', 'secureHash' => '123', ) ); $data = $this->request->getData(); $this->assertSame('FC86354CC09D414EF308A6FA8CE4F9BB', $data['vpc_SecureHash']); } public function testPurchase() { $this->request->initialize( array( 'amount' => '12.00', 'transactionId' => 123, 'returnUrl' => 'https://www.example.com/return', 'merchantId' => '123', 'merchantAccessCode' => '123', 'secureHash' => '123', ) ); $response = $this->request->send(); $this->assertInstanceOf('Omnipay\Migs\Message\ThreePartyPurchaseResponse', $response); $this->assertFalse($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertNull($response->getTransactionReference()); $this->assertNull($response->getMessage()); $this->assertNull($response->getCode()); $this->assertStringStartsWith('https://migs.mastercard.com.au/vpcpay?', $response->getRedirectUrl()); $this->assertSame('GET', $response->getRedirectMethod()); $this->assertArrayHasKey('vpc_SecureHash', $response->getData()); } } tests/Message/TwoPartyPurchaseRequestTest.php 0000604 00000004020 15173232050 0015466 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Tests\TestCase; class TwoPartyPurchaseRequestTest extends TestCase { public function setUp() { $this->request = new TwoPartyPurchaseRequest($this->getHttpClient(), $this->getHttpRequest()); } public function testCalculateHash() { $data = array( 'vpc_Merchant' => '123', 'vpc_AccessCode' => '123', 'vpc_Version' => '1', 'vpc_Locale' => 'en', 'vpc_Command' => 'pay', 'vpc_Amount' => '1200', 'vpc_MerchTxnRef' => '123', 'vpc_OrderInfo' => '', 'vpc_ReturnURL' => 'https://www.example.com/return', 'vpc_CardNum' => '4111111111111111', 'vpc_CardExp' => '1305', 'vpc_CardSecurityCode' => '123', ); $this->request->setSecureHash('123'); $hash = $this->request->calculateHash($data); $this->assertSame('2624B4BABED7CCA98665238D75560600', $hash); } public function testPurchase() { $this->setMockHttpResponse('TwoPartyPurchaseSuccess.txt'); $this->request->initialize( array( 'amount' => '12.00', 'transactionId' => 123, 'card' => $this->getValidCard(), 'merchantId' => '123', 'merchantAccessCode' => '123', 'secureHash' => '123', 'returnUrl' => 'https://www.example.com/return' ) ); $response = $this->request->send(); $this->assertInstanceOf('Omnipay\Migs\Message\Response', $response); $this->assertTrue($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertEquals('12345', $response->getTransactionReference()); $this->assertSame('Approved', $response->getMessage()); $this->assertNull($response->getCode()); $this->assertArrayHasKey('vpc_SecureHash', $response->getData()); } } tests/Message/ThreePartyPurchaseResponseTest.php 0000604 00000001460 15173232050 0016137 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Tests\TestCase; class ThreePartyPurchaseResponseTest extends TestCase { public function testConstruct() { $data = array('test' => '123'); $response = new ThreePartyPurchaseResponse($this->getMockRequest(), $data, 'https://example.com/'); $this->assertFalse($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertNull($response->getTransactionReference()); $this->assertNull($response->getMessage()); $this->assertSame($data, $response->getData()); $this->assertSame('https://example.com/', $response->getRedirectUrl()); $this->assertSame('GET', $response->getRedirectMethod()); $this->assertSame($data, $response->getRedirectData()); } } tests/Message/ThreePartyCompletePurchaseRequestTest.php 0000604 00000003410 15173232050 0017457 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Tests\TestCase; class ThreePartyCompletePurchaseRequestTest extends TestCase { public function setUp() { $this->request = new ThreePartyCompletePurchaseRequest($this->getHttpClient(), $this->getHttpRequest()); } public function testThreePartyCompletePurchaseSuccess() { $data = array(); $data['vpc_Message'] = "Approved"; $data['vpc_ReceiptNo'] = "12345"; $data['vpc_TxnResponseCode'] = "0"; $data['vpc_SecureHash'] = "8720B88CA00352B2A5F4D51C64E86BCB"; $response = new Response($this->getMockRequest(), $data); $this->assertInstanceOf('Omnipay\Migs\Message\Response', $response); $this->assertTrue($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertSame('12345', $response->getTransactionReference()); $this->assertSame('Approved', $response->getMessage()); $this->assertNull($response->getCode()); } public function testThreePartyCompletePurchaseFailure() { $data = array(); $data['vpc_Message'] = "Error"; $data['vpc_ReceiptNo'] = "12345"; $data['vpc_TxnResponseCode'] = "1"; $data['vpc_SecureHash'] = "8720B88CA00352B2A5F4D51C64E86BCB"; $response = new Response($this->getMockRequest(), $data); $this->assertInstanceOf('Omnipay\Migs\Message\Response', $response); $this->assertFalse($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertSame('12345', $response->getTransactionReference()); $this->assertNotSame('Approved', $response->getMessage()); $this->assertNull($response->getCode()); } } tests/Message/TwoPartyPurchaseResponseTest.php 0000604 00000002463 15173232050 0015645 0 ustar 00 <?php namespace Omnipay\Migs\Message; use Omnipay\Tests\TestCase; class TwoPartyPurchaseResponseTest extends TestCase { public function testTwoPartyPurchaseSuccess() { $httpResponse = $this->getMockHttpResponse('TwoPartyPurchaseSuccess.txt'); $response = new Response($this->getMockRequest(), $httpResponse->getBody()); $this->assertInstanceOf('Omnipay\Migs\Message\Response', $response); $this->assertTrue($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertSame('12345', $response->getTransactionReference()); $this->assertSame('Approved', $response->getMessage()); $this->assertNull($response->getCode()); } public function testTwoPartyPurchaseFailure() { $httpResponse = $this->getMockHttpResponse('TwoPartyPurchaseFailure.txt'); $response = new Response($this->getMockRequest(), $httpResponse->getBody()); $this->assertInstanceOf('Omnipay\Migs\Message\Response', $response); $this->assertFalse($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertSame('12345', $response->getTransactionReference()); $this->assertSame('Declined', $response->getMessage()); $this->assertNull($response->getCode()); } } tests/Mock/TwoPartyPurchaseFailure.txt 0000604 00000001324 15173232050 0014126 0 ustar 00 HTTP/1.1 200 OK Date: Fri, 05 Apr 2013 13:11:19 GMT Server: Apache Expires: Sun, 15 Jul 1990 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache Content-Length: 469 P3P: CP="NOI DSP COR CURa ADMa TA1a OUR BUS IND UNI COM NAV INT" Content-Type: text/plain;charset=iso-8859-1 vpc_AVSRequestCode=Z&vpc_AVSResultCode=Unsupported&vpc_AcqAVSRespCode=Unsupported&vpc_AcqCSCRespCode=Unsupported&vpc_AcqResponseCode=14&vpc_Amount=1000&vpc_BatchNo=12345&vpc_CSCResultCode=Unsupported&vpc_Card=VC&vpc_Command=pay&vpc_Locale=en&vpc_MerchTxnRef=123&vpc_Merchant=EXAMPLE&vpc_Message=Declined&vpc_OrderInfo=&vpc_ReceiptNo=12345&vpc_SecureHash=71B4E0DE9EACB5FC27C902379737D458&vpc_TransactionNo=12345&vpc_TxnResponseCode=2&vpc_Version=1 tests/Mock/TwoPartyPurchaseSuccess.txt 0000604 00000001352 15173232050 0014150 0 ustar 00 HTTP/1.1 200 OK Date: Fri, 05 Apr 2013 12:29:13 GMT Server: Apache Expires: Sun, 15 Jul 1990 00:00:00 GMT Pragma: no-cache Cache-Control: no-cache Content-Length: 492 P3P: CP="NOI DSP COR CURa ADMa TA1a OUR BUS IND UNI COM NAV INT" Content-Type: text/plain;charset=iso-8859-1 vpc_AVSRequestCode=Z&vpc_AVSResultCode=Unsupported&vpc_AcqAVSRespCode=Unsupported&vpc_AcqCSCRespCode=Unsupported&vpc_AcqResponseCode=00&vpc_Amount=1000&vpc_AuthorizeId=12345&vpc_BatchNo=12345&vpc_CSCResultCode=Unsupported&vpc_Card=VC&vpc_Command=pay&vpc_Locale=en&vpc_MerchTxnRef=123&vpc_Merchant=EXAMPLE&vpc_Message=Approved&vpc_OrderInfo=&vpc_ReceiptNo=12345&vpc_SecureHash=58808781CF7265DEA89EA8B713FAB075&vpc_TransactionNo=12345&vpc_TxnResponseCode=0&vpc_Version=1 tests/TwoPartyGatewayTest.php 0000604 00000002647 15173232050 0012375 0 ustar 00 <?php namespace Omnipay\Migs; use Omnipay\Tests\GatewayTestCase; class TwoPartyGatewayTest extends GatewayTestCase { public function setUp() { parent::setUp(); $this->gateway = new TwoPartyGateway($this->getHttpClient(), $this->getHttpRequest()); $this->gateway->setSecureHash(md5('example')); $this->options = array( 'amount' => '10.00', 'transactionId' => 12345, 'card' => $this->getValidCard(), ); } public function testPurchaseSuccess() { $this->setMockHttpResponse('TwoPartyPurchaseSuccess.txt'); $response = $this->gateway->purchase($this->options)->send(); $this->assertInstanceOf('\Omnipay\Migs\Message\Response', $response); $this->assertTrue($response->isSuccessful()); $this->assertEquals('12345', $response->getTransactionReference()); $this->assertSame('Approved', $response->getMessage()); } public function testPurchaseFailure() { $this->setMockHttpResponse('TwoPartyPurchaseFailure.txt'); $response = $this->gateway->purchase($this->options)->send(); $this->assertInstanceOf('\Omnipay\Migs\Message\Response', $response); $this->assertFalse($response->isSuccessful()); $this->assertEquals('12345', $response->getTransactionReference()); $this->assertEquals('Declined', $response->getMessage()); } } tests/ThreePartyGatewayTest.php 0000604 00000002032 15173232050 0012657 0 ustar 00 <?php namespace Omnipay\Migs; use Omnipay\Tests\GatewayTestCase; class ThreePartyGatewayTest extends GatewayTestCase { public function setUp() { parent::setUp(); $this->gateway = new ThreePartyGateway($this->getHttpClient(), $this->getHttpRequest()); $this->options = array( 'amount' => '10.00', 'transactionId' => 12345, 'returnUrl' => 'https://www.example.com/return', ); } public function testPurchase() { $request = $this->gateway->purchase(array('amount' => '10.00')); $this->assertInstanceOf('\Omnipay\Migs\Message\ThreePartyPurchaseRequest', $request); $this->assertSame('10.00', $request->getAmount()); } public function testCompletePurchase() { $request = $this->gateway->completePurchase(array('amount' => '10.00')); $this->assertInstanceOf('\Omnipay\Migs\Message\ThreePartyCompletePurchaseRequest', $request); $this->assertSame('10.00', $request->getAmount()); } } phpunit.xml.dist 0000604 00000001512 15173232050 0007710 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> CONTRIBUTING.md 0000604 00000001040 15173232050 0006762 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 00000001701 15173232050 0007257 0 ustar 00 { "name": "omnipay/migs", "type": "library", "description": "MIGS driver for the Omnipay payment processing library", "keywords": [ "gateway", "mastercard internet gateway service", "merchant", "migs", "omnipay", "pay", "payment" ], "homepage": "https://github.com/thephpleague/omnipay-migs", "license": "MIT", "authors": [ { "name": "Adrian Macneil", "email": "adrian@adrianmacneil.com" }, { "name": "Omnipay Contributors", "homepage": "https://github.com/thephpleague/omnipay-migs/contributors" } ], "autoload": { "psr-4": { "Omnipay\\Migs\\" : "src/" } }, "require": { "omnipay/common": "~2.0" }, "require-dev": { "omnipay/tests": "~2.0" }, "extra": { "branch-alias": { "dev-master": "2.0.x-dev" } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Generation time: 0 |
proxy
|
phpinfo
|
Settings