Php 条带-手动付款

Php 条带-手动付款,php,android,ios,stripe-payments,stripe-connect,Php,Android,Ios,Stripe Payments,Stripe Connect,在我的应用程序中,由于特定的原因,我将“付款计划”设置为“手动”,从而在用户的自定义帐户中持有一些金额。这使我可以将自定义帐户中的付款最多保留90天。用户甚至可以在90天之前,在某些场景下将款项重新支付到外部帐户 现在我的问题是,由于Stripe需要2到7天的时间来支付,因此我只能在处理完成后才能释放支付 我怎样才能知道那件事?我如何知道交易是否处于挂起状态,然后如何知道它是否可以在银行账户中进行支付? 有什么办法可以实现吗?请让我知道我是新来的。 非常感谢您的帮助。您是在谈论身份验证和捕获吗?

在我的应用程序中,由于特定的原因,我将“付款计划”设置为“手动”,从而在用户的自定义帐户中持有一些金额。这使我可以将自定义帐户中的付款最多保留90天。用户甚至可以在90天之前,在某些场景下将款项重新支付到外部帐户

现在我的问题是,由于Stripe需要2到7天的时间来支付,因此我只能在处理完成后才能释放支付

我怎样才能知道那件事?我如何知道交易是否处于挂起状态,然后如何知道它是否可以在银行账户中进行支付? 有什么办法可以实现吗?请让我知道我是新来的。
非常感谢您的帮助。

您是在谈论身份验证和捕获吗?授权是指确保用户的银行允许用户进行交易。然后,一旦支付获得授权,您就可以捕获它,并将资金转移到Stripe

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

你可以这样做:

  • 通过条带验证付款。您对付款进行了授权,付款将进入此人的银行帐户(他们不再有权使用这笔钱)
  • 提供服务
  • 捕获付款。这笔钱将从他们的帐户中扣除并加入你的帐户
  • 通过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();
    
    当您创建费用时,它将在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": 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
    
    然后你收费。完成了


    如果答案正确,请检查是否正确