Omnipay令牌计费不适用于条带

时间:2016-04-12 12:25:42

标签: php laravel stripe-payments omnipay

我在laravel中使用ignint / laravel-omnipay包用于omnipay。 我正在尝试使用条带实现令牌计费,如此处https://github.com/thephpleague/omnipay#token-billing所示。 客户在条带上成功创建,但我无法使用返回的客户ID进行付款。

这是我的代码

    $token = Input::get('stripetoken');
    $gateway = Omnipay::create('Stripe');
    $gateway->setApiKey('My Key');
    $gateway->setTestMode(true);
    $cardresponse = $gateway->createCard(array('token' =>$token))->send();
    if ($cardresponse->isSuccessful()) {
      $card_id = $cardresponse->getCardReference();
      $data = $cardresponse->getData();
      $customerid = $data['id'];
      $cardid = $data['default_source'];
    }
    $paymentresponse = $gateway->purchase(array('amount' => '10.00','currency'  => 'USD', 'cardReference' => $card_id))->send();
    echo $paymentresponse->getMessage();

我得到了以下回复。

No such token: cus_8FwPaLNKdWcfRW

当我检查我的条带仪表板时,具有此ID的客户存在且已分配卡。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

由于您要创建客户对象,因此需要更新charge creation request以在customer参数中传递客户ID,而不是在source参数中传递你看到的错误。

我不熟悉Omnipay,但我认为这应该有效:

$paymentresponse = $gateway->purchase(array('amount' => '10.00','currency'  => 'USD', 'customerReference' => $card_id))->send();