在不使用Web挂钩的情况下测试条带保存的信用卡

时间:2017-10-17 16:35:29

标签: php stripe-payments

我目前正在使用Laravel Cashier(PHP)并使用保存在我的stripe_id表格中的已退回users以供将来付款。我没有使用Stripes或Laravel收银员订阅功能,因为我想要对它进行更多动态控制。

目前的工作方式是......

  1. 客户在我的应用上有一个帐户。
  2. 如果他们愿意,可以添加信用卡
  3. 当他们这样做时,会在Stripe上生成0 /月的订阅并将其保存为客户。
  4. 使用我stripe_id表格中返回并保存的users,我继续使用自己的订阅功能。
  5. 在错误处理等方面添加信用卡很好,因为我可以简单地使用条带提供的测试卡。

    但是,一旦客户被添加到我的Stripe帐户,我无法测试该客户以便将来结算。

    我尝试在条带信息中心中添加被拒绝的卡片,例如4000 0000 0000 0002,但没有任何反应,当我检查控制台时,我可以看到下面的错误。这是可以理解的,但我希望在测试模式下它可以让我添加它。

    enter image description here

    我知道我可以使用网络钩子,但对我来说这似乎是不切实际的。在我的本地机器上进行测试会很令人沮丧,我仍然需要能够将信用卡更改为失败的信用卡以发送正确的Web挂钩。我不想依赖Stripe web hook测试,因为它不会与我的进程同步,因为我无法控制customer_id等进行测试。

    以下是我向客户收费的代码。如您所见,我使用stripe_id收费。

    其他错误有效,但我唯一想测试的是卡片,所以如果它过期或资金不足我的应用就会知道

     $stripeID = $this->billing->getStripeID($userID);
    
    try {
        \Stripe\InvoiceItem::create( [
            'customer'    => $stripeID,
            'amount'      => $totalAmount,
            'currency'    => 'eur',
            'description' => 'Test Charge'
        ] );
    
    
        $invoice = \Stripe\Invoice::create( [
            'customer' => $stripeID
        ] );
    
        $invoice = \Stripe\Invoice::retrieve( $invoice->id );
        $charge = $invoice->pay();
    
    } catch(Card $e) {
        // error handling
    } catch (RateLimit $e) {
        // error handling
    } catch (InvalidRequest $e) {
        // error handling
    } catch (Authentication $e) {
        // error handling
    } catch (ApiConnection $e) {
        // error handling
    } catch (Base $e) {
        // error handling
    } catch (Exception $e) {
        // error handling
    }
    

0 个答案:

没有答案