Stripe - 手动支付

Stripe - Manual payout

在我的应用程序中,出于特定原因,我通过将 "Payout schedule" 设置为 "Manual" 在用户的自定义帐户中持有一些金额。这让我可以将自定义帐户中的付款最多保留 90 天。并且在某些场景下,用户甚至可以在90天之前将付款重新发放到外部账户。

现在我的问题是,由于 Stripe 需要 2 到 7 天才能完成付款,所以我只能在处理完成后才能发放付款。

我怎样才能知道这件事?我怎么知道交易是否处于待处理状态,然后如何知道它是否可以在银行账户中支付? 有什么办法可以实现吗?请让我知道我是 stripe 的新手。 任何帮助将不胜感激。

您是在谈论 Auth 和 Capture 吗?授权是指您确保用户的银行允许用户进行交易。然后,一旦付款被授权,您就可以捕获它,资金就会转移到 Stripe。

示例:您要以 5000 美元的价格销售一项服务,例如 Web 开发。你想确保这个人首先有钱。您还想确保有钱的人不会在您为他们提供服务时花钱。

您可以采用以下方式:

  1. 通过 Stripe 验证付款。您对付款进行授权,然后它会进入此人银行帐户中的待处理状态(他们无法再使用这笔钱)。
  2. 提供您的服务
  3. 捕获付款。钱从他们的帐户中扣除并添加到您的 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

然后你充电。完成。

https://stripe.com/docs/charges