payjp / payjp-php
Payjp PHP Library
Installs: 1 954 328
Dependents: 4
Suggesters: 0
Security: 0
Stars: 54
Watchers: 31
Forks: 15
Open Issues: 2
Requires
- php: >=5.6
- ext-curl: *
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ~5.7 || ~9.5
- squizlabs/php_codesniffer: ~3.6
README
Requirements
PHP 5.6 and later.
Even if it is not a corresponding version, it may work, but it does not support it. Due to the PHP END OF LIFE cycle.
Composer
You can install the bindings via Composer. Add this to your composer.json
:
{
"require": {
"payjp/payjp-php": "~1.0"
}
}
Then install via:
composer install
To use the bindings, use Composer's autoload:
require_once 'vendor/autoload.php';
Manual Installation
If you do not wish to use Composer, you can download the latest release. Then, to use the bindings, include the init.php
file.
require_once '/path/to/payjp-php/init.php';
Getting Started
In advance, you need to get a token by Checkout or payjp.js.
\Payjp\Payjp::setApiKey('sk_test_c62fade9d045b54cd76d7036'); $charge = \Payjp\Charge::create(array( 'card' => 'token_id_by_Checkout_or_payjp-js', 'amount' => 2000, 'currency' => 'jpy' )); echo $charge->amount; // 2000
Documentation
- Request Example
- Please see our official documentation.
Retry on HTTP Status Code 429
- See Rate Limit Guideline
- When you exceeded rate-limit, you can retry request by setting
$maxRetry
like\Payjp\Payjp::setMaxRetry(3);
. - The retry interval base value is
$retryInitialDelay
Adjust the value like\Payjp\Payjp::setRetryInitialDelay(4);
The smaller is shorter. - The retry interval calcurating is based on "Exponential backoff with equal jitter" algorithm.
See https://aws.amazon.com/jp/blogs/architecture/exponential-backoff-and-jitter/
Logging
- This library provides simple log output using
error_log
. You can set any logger that is compatible PSR-3 logger interface. Like below \Payjp\Payjp::setLogger($logger);
- As the default behavior, this library output only error level information to stderr.
Logging Case
info
- Every retry on HTTP Status Code 429
error
- When you access inaccessible or non-existing property
Tests
In order to run tests first install PHPUnit via Composer:
composer update --dev
To run the test suite:
./vendor/bin/phpunit