メインコンテンツへスキップ

支払い方法

支払い方法オブジェクトは、Stripe(クレジットカード、銀行口座)や様々な暗号通貨ネットワークを通じて顧客が支払うことができるさまざまな方法を表します。このAPIを使用すると、顧客が利用できる支払い方法を設定、管理、一覧表示できます。

各支払い方法は、1つ以上の支払い通貨にリンクされており、その方法で受け入れられる特定の通貨を定義します。

支払い方法オブジェクト

支払い方法オブジェクトには、特定の支払いプロバイダーまたはネットワークのすべての設定詳細が含まれています。

支払い方法オブジェクト

json
{
  "id": "pm_123abc",
  "name": "Stripeクレジットカード",
  "description": "クレジットカードまたは銀行口座で支払う",
  "type": "stripe",
  "logo": "/methods/stripe.png",
  "active": true,
  "locked": false,
  "livemode": false,
  "default_currency_id": "pc_456def",
  "features": {
    "recurring": true,
    "refund": true,
    "dispute": true
  },
  "confirmation": {
    "type": "callback"
  },
  "settings": {
    "stripe": {
      "publishable_key": "pk_test_...",
      "secret_key": "sk_test_... (encrypted)"
    }
  },
  "payment_currencies": [
    {
      "id": "pc_456def",
      "livemode": false,
      "active": true,
      "locked": true,
      "is_base_currency": false,
      "payment_method_id": "pm_123abc",
      "type": "standard",
      "name": "ドル",
      "description": "米ドル",
      "logo": "/currencies/dollar.png",
      "symbol": "USD",
      "decimal": 2,
      "maximum_precision": 2,
      "minimum_payment_amount": "1",
      "maximum_payment_amount": "100000000000",
      "contract": "",
      "metadata": {},
      "created_at": "2023-10-27T10:00:01.000Z",
      "updated_at": "2023-10-27T10:00:01.000Z"
    }
  ],
  "created_at": "2023-10-27T10:00:00.000Z",
  "updated_at": "2023-10-27T10:00:00.000Z"
}

支払い方法の作成

新しい支払い方法の設定を作成します。必須のsettingsオブジェクトは、支払い方法のtypeによって異なります。

パラメータ

NameTypeDescription
namestring必須。 人間が読める支払い方法の名前(例:「クレジットカード」)。最大32文字。
descriptionstring必須。 支払い方法の短い説明。最大255文字。
typestring必須。 支払い方法のタイプ。サポートされている値には、stripeethereum、およびbaseのような他のEVM互換チェーンが含まれます。
settingsobject必須。 支払い方法のtypeに固有の認証情報と設定を含む設定オブジェクト。詳細は以下を参照してください。
logostring任意。支払い方法のロゴのURL。指定しない場合、typeに基づいてデフォルトのロゴが使用されます。

Stripe設定オブジェクトのプロパティ

typestripeの場合、settings.stripeオブジェクトには以下のプロパティが含まれている必要があります。

NameTypeDescription
publishable_keystring必須。 あなたのStripe公開可能APIキー。
secret_keystring必須。 あなたのStripeシークレットAPIキー。

EVMチェーン設定オブジェクトのプロパティ

typeがEVMチェーン(例:ethereum)の場合、settings.{type}オブジェクトには以下のプロパティが含まれている必要があります。

NameTypeDescription
api_hoststring必須。 ブロックチェーンネットワークのJSON-RPC APIエンドポイント。
explorer_hoststring必須。 ブロックチェーンエクスプローラーのベースURL(例:https://etherscan.io)。
native_symbolstring必須。 チェーンのネイティブ通貨のシンボル(例:「ETH」)。
confirmationnumber任意。トランザクションを最終的なものと見なすために必要なブロック確認の数。デフォルトは1です。

戻り値

新しく作成されたTPaymentMethodExpandedオブジェクトを返します。これには、自動的に作成された関連payment_currenciesの配列が含まれます。

Stripe支払い方法の作成

javascript
import payment from '@blocklet/payment-js';

async function createStripeMethod() {
  try {
    const stripeMethod = await payment.paymentMethods.create({
      name: 'クレジットカード',
      description: 'Visa、Mastercardなどで支払う',
      type: 'stripe',
      settings: {
        stripe: {
          publishable_key: 'pk_test_YOUR_PUBLISHABLE_KEY',
          secret_key: 'sk_test_YOUR_SECRET_KEY',
        },
      },
    });
    console.log('Stripeメソッドが作成されました:', stripeMethod);
  } catch (error) {
    console.error('Stripeメソッドの作成中にエラーが発生しました:', error.message);
  }
}

createStripeMethod();

レスポンスの例

json
{
  "id": "pm_abc123",
  "name": "クレジットカード",
  "description": "Visa、Mastercardなどで支払う",
  "type": "stripe",
  "active": true,
  // ... other fields
  "payment_currencies": [
    {
      "id": "pc_xyz789",
      "name": "ドル",
      "symbol": "USD",
      // ... other currency fields
    }
  ]
}

支払い方法の取得

既存の支払い方法の詳細をその一意のIDで取得します。

パラメータ

NameTypeDescription
idstring必須。 取得する支払い方法の一意の識別子。

戻り値

見つかった場合はTPaymentMethodExpandedオブジェクトを返し、そうでない場合は404エラーを返します。

支払い方法の取得

javascript
import payment from '@blocklet/payment-js';

async function getPaymentMethod(methodId) {
  try {
    const method = await payment.paymentMethods.retrieve(methodId);
    console.log('取得したメソッド:', method.name);
  } catch (error) {
    console.error(`支払い方法 ${methodId} の取得中にエラーが発生しました:`, error.message);
  }
}

getPaymentMethod('pm_abc123'); // 有効な支払い方法IDに置き換えてください

支払い方法の更新

渡されたパラメータの値を設定して、指定された支払い方法を更新します。提供されなかったパラメータは変更されません。

パラメータ

NameTypeDescription
idstring必須。 更新する支払い方法の一意の識別子。
dataobject必須。 更新するフィールドを含むオブジェクト。以下のプロパティを参照してください。

更新データオブジェクトのプロパティ

NameTypeDescription
namestring任意。支払い方法の新しい名前。
descriptionstring任意。支払い方法の新しい説明。
logostring任意。支払い方法の新しいロゴURL。
settingsobject任意。新しい設定オブジェクト。構造はメソッドのtypeと一致する必要があります。Stripeキーを更新すると、Webhook署名シークレットがリセットされるため、再設定が必要です。

戻り値

更新されたTPaymentMethodオブジェクトを返します。

支払い方法の更新

javascript
import payment from '@blocklet/payment-js';

async function updatePaymentMethod(methodId) {
  try {
    const updatedMethod = await payment.paymentMethods.update(methodId, {
      description: 'すべての主要なクレジットカードとデビットカードを受け入れます。',
    });
    console.log('支払い方法が更新されました:', updatedMethod.description);
  } catch (error) {
    console.error(`支払い方法 ${methodId} の更新中にエラーが発生しました:`, error.message);
  }
}

updatePaymentMethod('pm_abc123'); // 有効な支払い方法IDに置き換えてください

支払い方法の一覧表示

支払い方法のリストを返します。メソッドは作成日順にソートされ、最も新しく作成されたメソッドが最初に表示されます。

パラメータ

NameTypeDescription
activeboolean任意。支払い方法をアクティブステータスでフィルタリングするためのブール値フラグ。
livemodeboolean任意。ライブモードまたはテストモードの支払い方法をフィルタリングするためのブール値フラグ。
pagenumber任意。ページネーション用のページ番号。1から始まります。
pageSizenumber任意。ページごとに返すアイテムの数。デフォルトは20です。

戻り値

TPaymentMethodExpandedオブジェクトの配列を返します。

すべてのアクティブな支払い方法を一覧表示

javascript
import payment from '@blocklet/payment-js';

async function listActiveMethods() {
  try {
    const methods = await payment.paymentMethods.list({
      active: true,
      livemode: false, // テストメソッドをフィルタリング
    });
    console.log(`アクティブなテスト支払い方法が ${methods.length} 件見つかりました:`);
    methods.forEach(method => {
      console.log(`- ${method.name} (タイプ: ${method.type})`);
    });
  } catch (error) {
    console.error('支払い方法の一覧表示中にエラーが発生しました:', error.message);
  }
}

listActiveMethods();

レスポンスの例

json
[
  {
    "id": "pm_abc123",
    "name": "クレジットカード",
    "type": "stripe",
    "active": true,
    "livemode": false,
    // ... other fields
  },
  {
    "id": "pm_def456",
    "name": "Ethereum",
    "type": "ethereum",
    "active": true,
    "livemode": false,
    // ... other fields
  }
]