univapay-node-es v0.3.13
univapay-node
Node.jsがUnivaPayAPI を使用するための SDK ライブラリです。
インストール
# 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 リファレンス
イベント
ChargesやStoresなどの、PaymentsSDKおよびResourceベースのクラスはEventEmitterです。次のイベントをサブスクライブできます。
const sdk = new SDK();
sdk.on('request', (req: Request) => void)
sdk.on('response', (res: Response) => void)RequestとResponseはfetchAPIの型です。
ブラウザでの利用方法
このモジュールは主にNode.js用に設計されていますが、WebpackやRollupなどのバンドラによってトランスパイルされたときに、ブラウザで使用することができます。
ビルドを最適化して小さくするために、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
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago