adamstipak / webpay-php
GP Webpay API Wrapper
1.5.1
2024-03-01 10:17 UTC
Requires
- php: ~7.4 || ~8.0
- ext-dom: *
- ext-libxml: *
- ext-openssl: *
- spatie/array-to-xml: ^2.16
Requires (Dev)
- phpunit/phpunit: ~9.5
README
Full featured PHP SDK for GP Webpay payments.
Installation
The best way to install GP Webpay PHP SDK is using Composer:
$ composer require adamstipak/webpay-php dev-master
Setup
$signer = new \AdamStipak\Webpay\Signer( $privateKeyFilepath, // Path of private key. $privateKeyPassword, // Password for private key. $publicKeyFilepath // Path of public key. ); $api = new \AdamStipak\Webpay\Api( $merchantNumber, // Merchant number. $webpayUrl, // URL of webpay. $signer // instance of \AdamStipak\Webpay\Signer. );
Create payment
Create payment url
use \AdamStipak\Webpay\PaymentRequest; $request = new PaymentRequest(...); $url = $api->createPaymentRequestUrl($request); // $api instance of \AdamStipak\Webpay\Api // use $url as you want. In most cases for redirecting to GP Webpay.
ADDINFO parameter
// for minimal setup you can use use \AdamStipak\Webpay\PaymentRequest; use AdamStipak\Webpay\PaymentRequest\AddInfo; $schema = file_get_contents("Path to XSD schema (GPwebpayAdditionalInfoRequest_v.4.xsd) from portal https://portal.gpwebpay.com/"); // use minimal valid values for XSD schema $addInfo = new AddInfo($schema, AddInfo::createMinimalValues()); // or you can use valid values against XSD schema (start here AddInfo::createMinimalValues()) $request = new AddInfo($schema, [...]); $request = new PaymentRequest(..., $addInfo);
Verify payment response
use \AdamStipak\Webpay\PaymentResponse; use \AdamStipak\Webpay\Exception; $response = new PaymentResponse(...); // fill response with response parameters (from request). try { $api->verifyPaymentResponse($response); } catch (PaymentResponseException $e) { // PaymentResponseException has $prCode, $srCode for properties for logging GP Webpay response error codes. } catch (Exception $e) { // Digest is not correct. }
Development
GP Webpay PHP SDK is developed in Docker container via docker-compose
command.
Example:
$ docker-compose run --rm default install # install deps via composer $ docker-compose run --rm default # runs tests in container
Attach to container:
$ docker-compose run --rm default bash # runs bash in container and attach tty