payever / payments-sdk-php
payever支付的PHP SDK
2.5.0
2024-08-21 16:11 UTC
Requires
- php: >=5.4.0
- ext-curl: *
- ext-json: *
- payever/core-sdk-php: 2.1.0
Requires (Dev)
- behat/behat: ^3.4
- friendsofphp/php-cs-fixer: ^2.18
- laminas/laminas-diactoros: ^2.5
- laminas/laminas-httphandlerrunner: ^1.4
- phpmd/phpmd: ^2.9
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.5
README
此仓库包含允许您从PHP应用程序访问payever的开源PHP SDK。
此库遵循语义化版本控制。更多内容请参阅semver.org。
请注意:此SDK用于payever插件中。它不适用于自定义API集成。如果您想通过API与我们集成,请访问https://docs.payever.org/shopsystems/api并遵循提供的说明和代码示例。
故障排除
如果您遇到问题,可以通过官方支持渠道联系我们 - support@getpayever.com
要求
- PHP 5.4.0及更高版本
- PHP cURL扩展
安装
您可以使用Composer
Composer
首选方法是使用composer。如果您尚未安装composer,请按照安装说明进行操作。
Composer安装后,在项目根目录中执行以下命令以安装此库
composer require payever/payments-sdk-php
文档
原始HTTP API文档可在此处找到 - https://docs.payever.org/shopsystems/api
枚举
API内部使用几个固定字符串值的列表。为了方便,它们被表示为常量并分组到类中。
- 支付
PaymentMethod
- 可用的payever支付方式列表Status
- 可用的payever支付状态列表
API客户端
通过PaymentsApiClient
API客户端与payever进行HTTP API通信。
配置
每个API客户端都需要将配置对象作为客户端构造函数的第一个参数。为了获取有效的配置对象,您需要有效的API凭据
- 客户端ID
- 客户端密钥
- 业务UUID
此外,您需要告知您正在使用哪个API通道
use Payever\Sdk\Core\ClientConfiguration; use Payever\Sdk\Core\Enum\ChannelSet; $clientId = 'your-oauth2-client-id'; $clientSecret = 'your-oauth2-client-secret'; $businessUuid = '88888888-4444-4444-4444-121212121212'; $clientConfiguration = new ClientConfiguration(); $clientConfiguration ->setClientId($clientId) ->setClientSecret($clientSecret) ->setBusinessUuid($businessUuid) ->setChannelSet(ChannelSet::CHANNEL_MAGENTO) ->setApiMode(ClientConfiguration::API_MODE_LIVE) ;
注意:以下所有示例都假设您已将ClientConfiguration
实例化在$clientConfiguration
变量中。
日志记录
您可以通过提供PSR-3兼容的记录器实例来设置所有API交互的日志记录。
如果没有PSR-3兼容的记录器,此SDK包含简单的文件记录器
use Psr\Log\LogLevel; use Payever\Sdk\Core\Logger\FileLogger; $logger = new FileLogger(__DIR__.'/payever.log', LogLevel::INFO); $clientConfiguration->setLogger($logger);
PaymentsApiClient
此API客户端用于所有与支付相关的交互。
创建支付并获得重定向URL
use Payever\Sdk\Payments\Enum\PaymentMethod; use Payever\Sdk\Payments\PaymentsApiClient; use Payever\Sdk\Payments\Http\RequestEntity\CreatePaymentRequest; $paymentsApiClient = new PaymentsApiClient($clientConfiguration); $createPaymentEntity = new CreatePaymentRequest(); $createPaymentEntity ->setOrderId('1001') ->setAmount(100.5) ->setFee(10) ->setCurrency('EUR') ->setPaymentMethod(PaymentMethod::METHOD_SANTANDER_DE_INSTALLMENT) ->setSalutation('mr') ->setFirstName('John') ->setLastName('Doe') ->setCity('Hamburg') ->setCountry('DE') ->setZip('10111') ->setStreet('Awesome street, 10') ->setEmail('john.doe@example.com') ->setPhone('+450001122') ->setSuccessUrl('https://your.domain/success?paymentId=--PAYMENT-ID--') ->setCancelUrl('https://your.domain/checkout?reason=cancel') ->setFailureUrl('https://your.domain/checkout?reason=failure') ->setNoticeUrl('https://your.domain/async-payment-callback?paymentId=--PAYMENT-ID--') ; try { $response = $paymentsApiClient->createPaymentRequest($createPaymentEntity); $responseEntity = $response->getResponseEntity(); header(sprintf('Location: %s', $responseEntity->getRedirectUrl()), true); exit; } catch (\Exception $exception) { echo $exception->getMessage(); }
通过ID检索支付详情
use Payever\Sdk\Payments\PaymentsApiClient; use Payever\Sdk\Payments\Http\MessageEntity\RetrievePaymentResultEntity; $paymentId = '--PAYMENT-ID--'; $paymentsApiClient = new PaymentsApiClient($clientConfiguration); try { $response = $paymentsApiClient->retrievePaymentRequest($paymentId); /** @var RetrievePaymentResultEntity $payment */ $payment = $response->getResponseEntity()->getResult(); $status = $payment->getStatus(); } catch(\Exception $exception) { echo $exception->getMessage(); }
通过ID取消支付
use Payever\Sdk\Payments\PaymentsApiClient; use Payever\Sdk\Payments\Action\ActionDecider; $paymentId = '--PAYMENT-ID--'; $paymentsApiClient = new PaymentsApiClient($clientConfiguration); $actionDecider = new ActionDecider($paymentsApiClient); try { if ($actionDecider->isActionAllowed($paymentId, ActionDecider::ACTION_CANCEL, false)) { $paymentsApiClient->cancelPaymentRequest($paymentId); } } catch(\Exception $exception) { echo $exception->getMessage(); }
触发桑坦德发货商品支付操作
use Payever\Sdk\Payments\PaymentsApiClient; use Payever\Sdk\Payments\Action\ActionDecider; $paymentId = '--PAYMENT-ID--'; $paymentsApiClient = new PaymentsApiClient($clientConfiguration); $actionDecider = new ActionDecider($paymentsApiClient); try { if ($actionDecider->isActionAllowed($paymentId, ActionDecider::ACTION_SHIPPING_GOODS, false)) { $paymentsApiClient->shippingGoodsPaymentRequest($paymentId); } } catch(\Exception $exception) { echo $exception->getMessage(); }
获取公司信用等级
use Payever\Sdk\Payments\PaymentsApiClient; use Payever\Sdk\Payments\Http\RequestEntity\CompanySearchCreditRequest; use Payever\Sdk\Payments\Http\RequestEntity\CompanySearchCredit\CompanyEntity; $company = new CompanyEntity(); $company->setExternalId('81981372'); $companySearchCredit = new CompanySearchCreditRequest(); $companySearchCredit->setCompany($company); $paymentsApiClient = new PaymentsApiClient($clientConfiguration); $result = $paymentsApiClient->companyCredit($companySearchCredit);
许可证
有关更多信息,请参阅许可证文件。