adamstipak/webpay-php

GP Webpay API 封装器

1.5.1 2024-03-01 10:17 UTC

This package is not auto-updated.

Last update: 2024-09-13 12:38:07 UTC


README

Build Status

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