laravel cashier的invoicePrice()方法無法正常運作
P粉269847997
P粉269847997 2023-08-29 10:12:00
0
1
501
<p>我正在嘗試使用laravel cashier和stripe來立即生成發票並向用戶收費,但它不起作用。我正在參考laravel-8文檔中的範例程式碼片段來做這個。 </p> <pre class="brush:php;toolbar:false;">$user->invoicePrice('price_tshirt', 5, [ 'discounts' => [ ['coupon' => 'SUMMER21SALE'] ], ], [ 'default_tax_rates' => ['txr_id'], ]);</pre> <p>我在我的stripe儀表板中創建了一個產品,並用產品的價格ID取代了'price_tshirt'。最後的程式碼看起來像這樣</p> <pre class="brush:php;toolbar:false;">if(!$user->hasPaymentMethod()){ $user->addPaymentMethod($paymentMethod); //$paymentMethod方法是自動產生的 } $user->invoicePrice('price_xxxxxxx', 1, [], [ 'description' => '這是一個虛擬描述', 'currency' => 'usd', 'receipt_email' => 'john@doe.com' ]);</pre> <p>運行程式碼後什麼都沒有發生,我查看了我的stripe儀表板,什麼都沒看到。我的目標是向使用者收費並為他們產生發票,以便我以後可以透過像這樣的程式碼存取這些發票<code>$user->invoices()</code></p> <p>注意: 我之前使用的是<code>$user->charge(100, $paymentMethod);</code>,它完美地工作,但沒有產生任何發票,然後我決定改用<code>$user ->invoiceFor()</code>方法,這個方法只產生了一個發票,但使用者沒有被收費。我決定再次更改並使用<code>$user->invoicePrice()</code>,但這個方法根本沒有起作用。我需要讓用戶在付款後管理他們的發票,但我找不到一個可以幫助我做到這一點的方法(產生發票和收費)。我不知道我做錯了什麼,請幫忙。 </p>
P粉269847997
P粉269847997

全部回覆(1)
P粉716228245

聽起來問題是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的產品時(非常感謝之前發布這個問題的人!!)。

但是當我創建一個具有預先存在的貨幣的新用戶而不是客戶時,它就起作用了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板