0.3.13 • Published 4 years ago

univapay-node-es v0.3.13

Weekly downloads
42
License
MIT
Repository
github
Last release
4 years ago

univapay-node

Node.jsUnivaPayAPI を使用するための SDK ライブラリです。

English readme

CircleCI NPM version Node.js version support Code coverage Dependencies Dev Dependencies Optional Dependencies GitHub Issues GitHub Pull Requests CLA assistant MIT licensed

インストール

# npm (推奨)
npm install --save univapay-node
npm install --save-dev tslib # SDKの利用にJavaScriptが必要

# yarn
yarn add univapay-node
yarn add --dev tslib # SDKの利用にJavaScriptが必要

利用方法

準備

ストアアプリケーショントークンがない場合は、まず以下の手順で作成してください。

  • 店舗 > 店舗を選択 > 開発 > アプリトークン ページに移動
  • 追加 をクリック
  • ドメインとモードを追加する
  • 作成されたトークンから JWT をコピーする
  • シークレットを保存することを忘れないでください

SDK のセットアップ

import SDK from "univapay-node";

const apiEndpoint = "https://api.univapay.com";
const storeJwt = jwt; // `準備`を参照
const storeJwtSecret = secret; // `準備`を参照

const sdk = new SDK({
    endpoint: apiEndpoint,
    jwt: storeJwt,
    secret: storeJwtSecret,
});

課金を作成する

import SDK from "univapay-node";
import { PaymentType, TransactionTokenType } from "univapay-node/resources/TransactionTokens";
import { ResponseError } from "univapay-node/errors/RequestResponseError";

const sdk = new SDK({ endpoint, jwt, secret });

// 課金用のトークンを作成
let transactionToken;
try {
  const transactionToken = await sdk.transactionTokens.create({
    type: TransactionTokenType.ONE_TIME, // 1回のみ利用可
    paymentType: PaymentType.CARD,

    // データの型は決済方法によって異なります
    data: { cardholder, cardNumber, expMonth, expYear, cvv }
  });
} catch (tokenCreateError: ResponseError) {
  handleError(tokenCreateError);
}

// 課金を作成
try {
  const charge = await sdk.charges.create({
    amount: 1000;
    currency: "JPY",
    transactionTokenId: transactionToken.id,
  });
} catch (chargeCreateError: ResponseError) {
  // 未使用のトークンをクリーンアップして、次の課金のために別のトークンを再作成します
  await sdk.transactionTokens.delete(transactionToken.id);

  handleError(chargeCreateError);
}

ポーリング

課金を作成した後、ステータスはpendingに初期化されます。 API が完全に処理し終わると、successfulまたはfailedになります。課金がfailedまたはsuccessfulになったタイミングを知る必要がある場合は、課金をポーリングすることができます。

import SDK from "univapay-node";
import {
    PaymentType,
    TransactionTokenType,
} from "univapay-node/resources/TransactionTokens";
import { ResponseError } from "univapay-node/errors/RequestResponseError";

const sdk = new SDK({ endpoint, jwt, secret });

const transactionToken = await sdk.transactionTokens.create(/* */);
const createdCharge = await sdk.charges.create(/* */); // Pending ステータス

const charge = await sdk.charges.poll(
    createdCharge.storeId,
    createdCharge.id,
    null,
    null,
    null,

    // ポーリングが停止してnullを返す条件
    // 任意: (charge:ResponseCharge) => boolean
    cancelCondition,

    // ポーリングが成功する条件。デフォルトは、statusがpendingではないこと
    // 任意: (charge: ResponseCharge) => boolean
    successCondition
);

認証が必要な課金の作成

デフォルトでは、課金を作成するとそのままキャプチャされます。そうではなく、認証する必要がある場合は、captureプロパティを falseに設定し、任意のcaptureAtプロパティを指定して特定の日付で自動的にキャプチャするようにすることができます。

const charge = await sdk.charges.create({
  amount: 1000;
  currency: "JPY",
  transactionTokenId: transactionToken.id,
  capture: false, // 課金を直接はキャプチャしない
  captureAt: "2020-08-12", // 任意
});

API リファレンス

イベント

ChargesStoresなどの、PaymentsSDKおよびResourceベースのクラスはEventEmitterです。次のイベントをサブスクライブできます。

const sdk = new SDK();
sdk.on('request', (req: Request) => void)
sdk.on('response', (res: Response) => void)

RequestResponsefetchAPIの型です。

ブラウザでの利用方法

このモジュールは主にNode.js用に設計されていますが、WebpackRollupなどのバンドラによってトランスパイルされたときに、ブラウザで使用することができます。

ビルドを最適化して小さくするために、ESモジュールとしてエクスポートされたunivapay-node-esを使用することもできます。これは、Tree shakingをサポートします。

コントリビュート

univapay-nodeの開発に寄与するには、このリポジトリをローカルで clone し、コードを別のブランチとして commit します。その際、コードの単体テストを記述し、プルリクエストを作成する前に Lint を実行してください。

npm run lint -- --fix
npm run format

npm test

ライセンス

univapay-nodeは、MITライセンスの下で配布されています。

Copyright © 2019, UnivaPay Team

0.3.13

4 years ago

0.3.12

4 years ago

0.3.11

4 years ago

0.3.10

4 years ago

0.3.9

4 years ago

0.3.8

4 years ago

0.3.7

4 years ago

0.3.6

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.0

4 years ago

0.3.1

4 years ago

0.2.0

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.14

4 years ago

0.0.15

4 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago