PHPackages                             univapay/php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. univapay/php-sdk

ActiveLibrary[Payment Processing](/categories/payments)

univapay/php-sdk
================

PHP SDK for Univapay Payments

6.7.6(2mo ago)3116.4k↓14.5%1[4 issues](https://github.com/univapay/univapay-php-sdk/issues)MITPHPPHP &gt;=7.2CI passing

Since Aug 27Pushed 2mo ago7 watchersCompare

[ Source](https://github.com/univapay/univapay-php-sdk)[ Packagist](https://packagist.org/packages/univapay/php-sdk)[ Docs](https://github.com/univapay/univapay-php-sdk)[ RSS](/packages/univapay-php-sdk/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (50)Used By (0)

UnivaPay PHP SDK
================

[](#univapay-php-sdk)

[![PHP lint & test](https://github.com/univapay/univapay-php-sdk/actions/workflows/php.yml/badge.svg?branch=master)](https://github.com/univapay/univapay-php-sdk/actions/workflows/php.yml)

UnivaPay PHP SDKは、UnivaPay決済ゲートウェイと連携する便利なメソッドを提供します。

*[English](README_en.md)*

必要なもの
-----

[](#必要なもの)

- PHP 7.2.x 以上
- Composer
- UnivaPayのストアアプリケーショントークンまたはマーチャントアプリケーショントークン

インストール
------

[](#インストール)

```
composer require univapay/php-sdk
```

利用方法
----

[](#利用方法)

```
use Univapay\UnivapayClient;
use Univapay\UnivapayClientOptions;
use Univapay\Requests\Handlers\RateLimitHandler;

$client = new UnivapayClient(AppJWT::createToken('token', 'secret'));

// その他のオプションは、クライアントをインスタンス化する前にクライアントオプションオブジェクトを作成および変更します
// すべてのオプションについては、UnivapayClientOptionsを参照してください
$clientOptions = new UnivapayClientOptions();
$clientOptions->rateLimitHandler = new RateLimitHandler(5, 2);
$client = new UnivapayClient(AppJWT::createToken('token', 'secret'), $clientOptions);

// 使用例については、examplesフォルダを参照してください
```

### アプリケーショントークン

[](#アプリケーショントークン)

このSDKでは、ストアタイプとマーチャントタイプの両方のアプリケーショントークンがサポートされています。 ストアタイプトークンを必要とするトランザクショントークンや課金の作成以外のすべての機能は、両方のトークンタイプでサポートされています。

### 通貨モデル

[](#通貨モデル)

このSDKは`moneyphp`ライブラリを使用して金額と通貨をモデル化します。詳細は、[ドキュメント](http://moneyphp.org/en/latest/index.html)を参照してください。

すべての通貨と金額は自動的に`Currency`と`Money`オブジェクトに変換されます。フォーマットされた金額（`.*Formatted`キーで示される）のみがString形式になります。

```
use Money\Currency;
use Money\Money;
use Univapay\PaymentMethod\CardPayment;

$paymentMethod = new CardPayment(...);
$charge = $client
    ->createToken($paymentMethod)
    ->createCharge(Money::USD(1000));

$charge->currency === new Currency('USD'); // true
$charge->requestAmount === new Money(1000, $charge->currency); // true
```

### 列挙型

[](#列挙型)

PHPにはネイティブの組み込み列挙型サポートがないため、列挙子を操作するときに型の安全性を提供するために、`TypedEnum`というクラスを提供します。各列挙子クラスは最終版であり、 `TypedEnum`を拡張して、Javaなどの他の言語の列挙子と同様に動作する静的関数を提供します。列挙型クラスは、`Univapay\Enums`という名前空間にあります。

*デフォルトでは、作成時に値が指定されていない場合、スネークケースになります。*

```
use Univapay\Enums\ChargeStatus;

$values = ChargeStatus::findValues(); // 列挙子のすべての名前と値のリストを取得する
$chargeStatus = ChargeStatus::PENDING(); // 最後のカッコに注意してください
$chargeStatus->getValue() === 'pending'; // true
$chargeStatus === ChargeStatus::fromValue('pending'); // true
// switchステートメントでも機能します
switch ($chargeStatus) {
    case ChargeStatus::PENDING():
        // Do something
        break;
    // ...
}
```

### リソースモデルの更新

[](#リソースモデルの更新)

リソースモデル（`Resource`を拡張するモデルクラス）を更新するには、下記のようにします。

```
$charge->fetch();
```

### ポーリング

[](#ポーリング)

次のリソースは、ステータス変更を待機するためのロングポーリングがサポートされています。

- `Charge`
- `Refund`
- `Cancel`
- `Subscription`

これらのリクエストは最初に`PENDING`ステータスを戻します。ロングポーリングでは、リソースのステータスが変更されたときに、更新されたモデルをフェッチできます。3秒以内に変更が発生しない場合、その時点のリソースが返されます。オプションとして、`PENDING`ステータスが返された場合に、自動的にリトライするためのリトライ回数を渡すことができます。

```
$charge = $client
    ->createCharge($token->id, Money::USD(1000)) // $charge->status == PENDING
    ->awaitResult(); // $charge->status == SUCCESSFUL

// OR
$charge = $client
    ->createCharge($token->id, Money::USD(1000)) // $charge->status == PENDING
    ->awaitResult(5); // `PENDING`以外ステータスを返すまで、5回まで（最大15秒）をリトライを実行
```

### リストとページネーション

[](#リストとページネーション)

SDKのすべてのリスト関数は、作成日時の降順で`Paginated`オブジェクトとして返されます。配列を介してパラメーターを渡すときは、入力が期待されるタイプと一致するように注意してください。一致しない場合、`InvalidArgumentException`がスローされます。

```
use InvalidArgumentException;
use Univapay\Enums\CursorDirection;

try {
    $transactionList = $client->listTransactionsByOptions([
        'from' => date_create('-1 week'),
        'to' => date_create('+1 week')
    ]);
} catch (InvalidArgumentException $error) {
    // 入力パラメーターが正しいタイプに対応していない場合
}

$transactions = $transactionList->items; // 1ページあたりのデフォルトの上限 = 10アイテム

if ($transactionList->hasMore) {
    $transactionList = $transactionList->getNext(); // リストは内部で変化しない
    $transactions = array_merge($transactions, $transactionList->items);
}

$firstTenItems = $client->listTransactionsByOptions([
    'from' => date_create('-1 week'),
    'to' => date_create('+1 week'),
    'cursor_direction' => CursorDirection::ASC()
]);
```

### リクエスト/レスポンスハンドラ

[](#リクエストレスポンスハンドラ)

データをオブジェクトに解析する前に追加の変更または応答への反応を必要とする場合の使用例です。 SDKは、APIからのバックプレッシャーに基づいてリクエストを調整する `RateLimitHandler`を提供します（これはデフォルトで` UnivapayClientOptions-> rateLimitHandler`に実装されています）。 さらに、 `BasicRetryHandler`も提供されており、再試行のために特定の例外をキャッチしてフィルタリングします。 キャッチする例外を指定するには：

```
use Univapay\Requests\Handlers\BasicRetryHandler;

$subscriptionTokenRetryHandler = new BasicRetryHandler(
    UnivapayResourceConflictError::class,
    5, // 5回トライする
    2, // 2秒毎
    // エラーに基づいたより具体的なフィルタリングは、最初のパラメーターからエラー内容を取得してください
    // 再試行する場合はtrueを、無視する場合はfalseを返します
    function (UnivapayResourceConflictError $error) {
        return $error->code === 'NON_UNIQUE_ACTIVE_TOKEN';
    }
);
$client->addHandlers($subscriptionTokenRetryHandler);

// 新しいハンドラーをリセットするか、クリアして最初から追加する
// rateLimitHandlerはUnivapayClientOptionsから自動的に追加されます
$client->setHandlers($subscriptionTokenRetryHandler);
```

SDK開発者向け
--------

[](#sdk開発者向け)

ビルド:

```
composer install
```

コードフォーマット:

```
composer lint
composer lint:fix
```

テスト:

テストを実行するには、次の環境変数が必要です。

- `UNIVAPAY_PHP_TEST_TOKEN` - `test`モードのトークンである必要があります
- `UNIVAPAY_PHP_TEST_SECRET`
- `UNIVAPAY_PHP_TEST_ENDPOINT` - ローカルAPIインスタンスまたはステージングインスタンスを指します

```
composer test
```

*注：Github Actionsは、プルリクエストがOpenされているブランチでのみ実行されます*

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance66

Regular maintenance activity

Popularity37

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 76.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~58 days

Recently: every ~86 days

Total

42

Last Release

67d ago

Major Versions

1.6.0 → 2.0.02020-02-05

2.0.1 → 3.0.02020-07-07

3.0.0 → 4.0.02020-09-28

4.0.0 → 5.0.02020-12-10

5.3.4 → 6.0.0-rc12022-03-23

PHP version history (4 changes)v1.5.0PHP &gt;=5.6.0

6.0.0-rc1PHP &gt;=7.1.33

6.0.0-rc2PHP &gt;=7.1

6.6.0PHP &gt;=7.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/0cdafd5e11c591abd53f67e19ade6565ae424822967f5394e935c30ae9a5c8aa?d=identicon)[c.kingston](/maintainers/c.kingston)

---

Top Contributors

[![kgston](https://avatars.githubusercontent.com/u/5691799?v=4)](https://github.com/kgston "kgston (58 commits)")[![wrunivapay](https://avatars.githubusercontent.com/u/175676825?v=4)](https://github.com/wrunivapay "wrunivapay (16 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![yukimogu](https://avatars.githubusercontent.com/u/36019900?v=4)](https://github.com/yukimogu "yukimogu (1 commits)")

---

Tags

paymentjapancredit-cardunivapay

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/univapay-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/univapay-php-sdk/health.svg)](https://phpackages.com/packages/univapay-php-sdk)
```

###  Alternatives

[paypayopa/php-sdk

PHP SDK for PayPay Open Payment API

18279.6k3](/packages/paypayopa-php-sdk)[verotel/flexpay-php-client

A client to Verotel FlexPay online payment gateway

12210.4k](/packages/verotel-flexpay-php-client)[enupal/stripe

Allows customers sign up for recurring and one-time payments with Stripe, perfect for orders, donations, subscriptions, and events. Create simple payment forms in seconds easily without coding. For Craft CMS 3.x

3416.5k1](/packages/enupal-stripe)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
