
Stripeでchargesの後にtransfersする方法 | Node.js
やりたいこと(重要)
・プラットフォームのサービスを作っている
・購入者が決済 => プラットフォームへお金が振り込まれる
・最終的に、出品者(子アカウント)へお金を送金したい
方法
これで、フロントで決済したクレカが、プラットフォームへチャージ(決済)されます
stripe.charges.create(
{
amount: 1000,
currency: 'jpy',
source: "tok_bypassPending", //チャージ後即座に送金可能にする。本当ならカードのtok情報
description: '支払い',
transfer_group: "ORDER1", //最終的にこの値を使って出品者(子アカウント)へお金を送金する
},
function(err, charge) {
console.log("エラー");
console.log(err);
console.log("チャージ");
console.log(charge);
}
);
で、これでチャージすると、本番環境の場合、四日後に送金可能になります。
それで、プラットフォーム内でサービスが完結し、出品者(子アカウント)へお金を送金したい場合は、
こうします↓
stripe.transfers.create(
{
amount: 100, //今回は送金可能金額1000円から100円だけ送金する
currency: 'jpy',
destination: "ここに子アカウントのid",
transfer_group: 'ORDER1', //ここの値を使って出金可能金額から送金する
},
function(err, transfer) {
console.log("transfer");
console.log(transfer);
console.log("err");
console.log(err);
}
);
これでOkです。
実際にプラットフォームからお金が引かれてることを確認する
curl https://api.stripe.com/v1/balance \
-u sk_test_OOOOOOOOOOOO:
これをターミナルとかに打ち込んでください。
すると、こんな感じで情報が出ます。
% curl https://api.stripe.com/v1/balance \
-u sk_test_OOOOOOOOOOOO:
{
"object": "balance",
"available": [
{
"amount":900,
"currency": "jpy",
"source_types": {
"card": 900
}
}
],
"connect_reserved": [
{
"amount": 0,
"currency": "jpy"
}
],
"livemode": false,
"pending": [
{
"amount": 0,
"currency": "jpy",
"source_types": {
"card": 0
}
}
]
}
クレカでチャージして決済した時、プラットフォームにお金が振り込まれますが、それで、四日後にここが反映されます。→"available": [
それで、transfers
してtransfer_group
指定した金額がavailableだった場合、お金を子アカウントに送金できます。
以上。