Heim  >  Fragen und Antworten  >  Hauptteil

Die billPrice()-Methode des Laravel-Kassierers funktioniert nicht ordnungsgemäß

<p>Ich versuche, mit Laravel Cashier und Stripe sofort eine Rechnung zu erstellen und den Benutzer zu belasten, aber es funktioniert nicht. Ich beziehe mich dazu auf die Beispielcodeausschnitte in der Laravel-8-Dokumentation. </p> <pre class="brush:php;toolbar:false;">$user->invoicePrice('price_tshirt', 5, [ 'Rabatte' => ['Gutschein' => ], ], [ 'default_tax_rates' => ['txr_id'], ]);</pre> <p>Ich habe in meinem Stripe-Dashboard ein Produkt erstellt und „price_tshirt“ durch die Preis-ID des Produkts ersetzt. Der endgültige Code sieht so aus</p> <pre class="brush:php;toolbar:false;">if(!$user->hasPaymentMethod()){ $user->addPaymentMethod($ paymentMethod); // Die Methode $ paymentMethod wird automatisch generiert } $user->invoicePrice('price_xxxxxxx', 1, [], [ 'description' => 'Dies ist eine virtuelle Beschreibung', 'Währung' => 'USD', 'receipt_email' => 'john@doe.com' ]);</pre> <p>Nachdem ich den Code ausgeführt hatte, passierte nichts. Ich schaute auf mein Stripe-Dashboard und sah nichts. Mein Ziel ist es, Benutzern Gebühren zu berechnen und Rechnungen für sie zu erstellen, damit ich später über Code wie diesen <code>$user->invoices()</code></p> auf diese Rechnungen zugreifen kann. <p>Hinweis: Ich habe <code>$user->charge(100, $ paymentMethod);</code> verwendet und es hat einwandfrei funktioniert, aber es wurde keine Rechnung generiert. Dann habe ich mich entschieden, stattdessen <code>$user zu verwenden - >invoiceFor()</code> Methode, diese Methode generiert nur eine Rechnung, dem Benutzer wird jedoch keine Gebühr berechnet. Ich habe beschlossen, noch einmal zu wechseln und <code>$user->invoicePrice()</code> zu verwenden, aber das hat überhaupt nicht funktioniert. Ich muss Benutzern ermöglichen, ihre Rechnungen nach der Zahlung zu verwalten, aber ich finde keine Methode, die mir dabei hilft (Rechnungen und Gebühren erstellen). Ich weiß nicht, was ich falsch mache, bitte helfen Sie mir. </p>
P粉269847997P粉269847997440 Tage vor475

Antworte allen(1)Ich werde antworten

  • P粉716228245

    P粉7162282452023-08-30 09:28:01

    听起来问题是laravel使用了一个被Stripe禁用的“pending_invoice_items_behavior”为“include_and_require”,所以默认情况下项目被排除在外。

    https://mobile.twitter.com/cjav_dev/status/1554922729081516033

    我尝试添加了一个新的参数,像这样。

    $user->invoicePrice('price_XXXXXXXXXXXXXX', 5, [], [
        'pending_invoice_items_behavior' => 'include',
    ]);

    然而,我也遇到了货币错误,因为我的用户之前在CAD中收费,当我尝试使用USD的产品时(非常感谢之前发布这个问题的人!!)。

    但是当我创建一个具有预先存在的货币的新用户而不是客户时,它起作用了。

    Antwort
    0
  • StornierenAntwort