lunar / payments-api-sdk
PHP SDK,用于与Lunar HTTP API通信
1.0.1
2024-02-16 09:51 UTC
Requires
- php: >=7.1
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: ^9.6.3
This package is not auto-updated.
Last update: 2024-09-27 12:56:48 UTC
README
lunar支付API的PHP封装器
要求
PHP 7.1及以后版本。
安装
您可以通过 Composer 安装此包。运行以下命令
composer require lunar/payments-api-sdk
API文档
要查找API参数,您可以访问以下URL
依赖项
这些绑定需要以下扩展才能正常工作
如果您使用Composer,这些依赖项应该会自动处理。如果您手动安装,请确保这些扩展可用。
如果您不想使用curl,您可以创建自己的客户端,从 HttpClientInterface
扩展,并在实例化 Lunar
类时将其作为参数发送。
示例
$lunar = new \Lunar\Lunar($private_secret_key); $payment_intent_id = $lunar->payments()->create( $args ); // fetch a payment intent $result = $lunar->payments()->fetch($payment_intent_id); // capture a transaction $payments = $lunar->payments(); $transaction = $payments->capture($transaction_id, [ 'amount' => [ 'decimal'=> '10', 'currency' => 'EUR' ] ]); // void a transaction $payments = $lunar->payments(); $transaction = $payments->cancel($transaction_id, [ 'amount' => [ 'decimal'=> '10', 'currency' => 'EUR' ] ]); // refund a transaction $payments = $lunar->payments(); $transaction = $payments->refund($transaction_id, [ 'amount' => [ 'decimal'=> '10', 'currency' => 'EUR' ] ]);
错误处理
当事情出错时,API封装器将抛出错误。所有错误都继承自 ApiException
。捕获所有类型错误的非常详细的示例
$lunar = new \Lunar\Lunar($private_secret_key); try { $payments = $lunar->transactions(); $payments->capture($transaction_id, [ 'amount' => [ 'decimal'=> '10', 'currency' => 'EUR' ] ]); } catch (\Lunar\Exception\NotFound $e) { // The transaction was not found } catch (\Lunar\Exception\InvalidRequest $e) { // Bad (invalid) request - see $e->getJsonBody() for the error } catch (\Lunar\Exception\Forbidden $e) { // You are correctly authenticated but do not have access. } catch (\Lunar\Exception\Unauthorized $e) { // You need to provide credentials (an app's API key) } catch (\Lunar\Exception\Conflict $e) { // Everything you submitted was fine at the time of validation, but something changed in the meantime and came into conflict with this (e.g. double-capture). } catch (\Lunar\Exception\ApiConnection $e) { // Network error on connecting via cURL } catch (\Lunar\Exception\ApiException $e) { // Unknown api error }
在大多数情况下,捕获 NotFound
和 InvalidRequest
作为客户端错误,并记录 ApiException
就足够了。
开发
安装依赖项
composer install
测试
如上所述安装依赖项(这将解决 PHPUnit),然后您可以运行测试套件
./vendor/bin/phpunit