Stripe - 手动支付
Stripe - Manual payout
在我的应用程序中,出于特定原因,我通过将 "Payout schedule" 设置为 "Manual" 在用户的自定义帐户中持有一些金额。这让我可以将自定义帐户中的付款最多保留 90 天。并且在某些场景下,用户甚至可以在90天之前将付款重新发放到外部账户。
现在我的问题是,由于 Stripe 需要 2 到 7 天才能完成付款,所以我只能在处理完成后才能发放付款。
我怎样才能知道这件事?我怎么知道交易是否处于待处理状态,然后如何知道它是否可以在银行账户中支付?
有什么办法可以实现吗?请让我知道我是 stripe 的新手。
任何帮助将不胜感激。
您是在谈论 Auth 和 Capture 吗?授权是指您确保用户的银行允许用户进行交易。然后,一旦付款被授权,您就可以捕获它,资金就会转移到 Stripe。
示例:您要以 5000 美元的价格销售一项服务,例如 Web 开发。你想确保这个人首先有钱。您还想确保有钱的人不会在您为他们提供服务时花钱。
您可以采用以下方式:
- 通过 Stripe 验证付款。您对付款进行授权,然后它会进入此人银行帐户中的待处理状态(他们无法再使用这笔钱)。
- 提供您的服务
- 捕获付款。钱从他们的帐户中扣除并添加到您的 Stripe 帐户中。
通过 Stripe API 的方法是:Auth
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
// Token is created using Checkout or Elements!
// Get the payment token ID submitted by the form:
$token = $_POST['stripeToken'];
// Charge the user's card:
$charge = \Stripe\Charge::create(array(
"amount" => 999,
"currency" => "usd",
"description" => "Example charge",
"capture" => false,
"source" => $token,
));
呈现您的服务...然后捕获
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
$charge = \Stripe\Charge::retrieve("ch_1A9eP02eZvKYlo2CkibleoVM");
$charge->capture();
当您创建收费时,它将 return 在 JSON 结果中的 ID 以及它是否已被捕获。如果您想检查验证是否成功,请先将 ID 保存在对收费的响应中...响应将如下所示...
Stripe\Charge JSON: {
"id": "ch_1CCjK02eZvKYlo2C85c1GGmL",
"object": "charge",
"amount": 2000,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"balance_transaction": "txn_19XJJ02eZvKYlo2ClwuJ1rbA",
"captured": false,
......... more ........
},
要检查费用,看它是否已被授权,你可以这样做...
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
\Stripe\Charge::retrieve("ch_1CCjK02eZvKYlo2C85c1GGmL");
响应将类似于...
Stripe\Charge JSON: {
"id": "ch_1CCjK02eZvKYlo2C85c1GGmL",
"object": "charge",
"amount": 2000,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"balance_transaction": "txn_19XJJ02eZvKYlo2ClwuJ1rbA",
"captured": true,
"created": 1522739568,
....more....
"outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"seller_message": "Payment complete.",
"type": "authorized" // AUTHORIZED
然后你充电。完成。
在我的应用程序中,出于特定原因,我通过将 "Payout schedule" 设置为 "Manual" 在用户的自定义帐户中持有一些金额。这让我可以将自定义帐户中的付款最多保留 90 天。并且在某些场景下,用户甚至可以在90天之前将付款重新发放到外部账户。
现在我的问题是,由于 Stripe 需要 2 到 7 天才能完成付款,所以我只能在处理完成后才能发放付款。
我怎样才能知道这件事?我怎么知道交易是否处于待处理状态,然后如何知道它是否可以在银行账户中支付? 有什么办法可以实现吗?请让我知道我是 stripe 的新手。 任何帮助将不胜感激。
您是在谈论 Auth 和 Capture 吗?授权是指您确保用户的银行允许用户进行交易。然后,一旦付款被授权,您就可以捕获它,资金就会转移到 Stripe。
示例:您要以 5000 美元的价格销售一项服务,例如 Web 开发。你想确保这个人首先有钱。您还想确保有钱的人不会在您为他们提供服务时花钱。
您可以采用以下方式:
- 通过 Stripe 验证付款。您对付款进行授权,然后它会进入此人银行帐户中的待处理状态(他们无法再使用这笔钱)。
- 提供您的服务
- 捕获付款。钱从他们的帐户中扣除并添加到您的 Stripe 帐户中。
通过 Stripe API 的方法是:Auth
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
// Token is created using Checkout or Elements!
// Get the payment token ID submitted by the form:
$token = $_POST['stripeToken'];
// Charge the user's card:
$charge = \Stripe\Charge::create(array(
"amount" => 999,
"currency" => "usd",
"description" => "Example charge",
"capture" => false,
"source" => $token,
));
呈现您的服务...然后捕获
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
$charge = \Stripe\Charge::retrieve("ch_1A9eP02eZvKYlo2CkibleoVM");
$charge->capture();
当您创建收费时,它将 return 在 JSON 结果中的 ID 以及它是否已被捕获。如果您想检查验证是否成功,请先将 ID 保存在对收费的响应中...响应将如下所示...
Stripe\Charge JSON: {
"id": "ch_1CCjK02eZvKYlo2C85c1GGmL",
"object": "charge",
"amount": 2000,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"balance_transaction": "txn_19XJJ02eZvKYlo2ClwuJ1rbA",
"captured": false,
......... more ........
},
要检查费用,看它是否已被授权,你可以这样做...
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2");
\Stripe\Charge::retrieve("ch_1CCjK02eZvKYlo2C85c1GGmL");
响应将类似于...
Stripe\Charge JSON: {
"id": "ch_1CCjK02eZvKYlo2C85c1GGmL",
"object": "charge",
"amount": 2000,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"balance_transaction": "txn_19XJJ02eZvKYlo2ClwuJ1rbA",
"captured": true,
"created": 1522739568,
....more....
"outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"seller_message": "Payment complete.",
"type": "authorized" // AUTHORIZED
然后你充电。完成。