adamstipak / webpay-php
GP Webpay API 封装器
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
为 GP Webpay 支付 提供的全面功能的 PHP SDK。
安装
安装 GP Webpay PHP SDK 的最佳方式是使用 Composer
$ composer require adamstipak/webpay-php dev-master
设置
$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. );
创建支付
创建支付 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 参数
// 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);
验证支付响应
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. }
开发
GP Webpay PHP SDK 使用 Docker 容器通过 docker-compose
命令进行开发。
示例
$ docker-compose run --rm default install # install deps via composer $ docker-compose run --rm default # runs tests in container
连接到容器
$ docker-compose run --rm default bash # runs bash in container and attach tty