laravel cashier的invoicePrice()方法无法正常运行
P粉269847997
P粉269847997 2023-08-29 10:12:00
[PHP讨论组]
<p>我正在尝试使用laravel cashier和stripe来立即生成发票并向用户收费,但是它不起作用。我正在参考laravel-8文档中的示例代码片段来做这个。</p> <pre class="brush:php;toolbar:false;">$user-&gt;invoicePrice('price_tshirt', 5, [ 'discounts' =&gt; [ ['coupon' =&gt; 'SUMMER21SALE'] ], ], [ 'default_tax_rates' =&gt; ['txr_id'], ]);</pre> <p>我在我的stripe仪表板中创建了一个产品,并用产品的价格ID替换了'price_tshirt'。最终的代码看起来像这样</p> <pre class="brush:php;toolbar:false;">if(!$user-&gt;hasPaymentMethod()){ $user-&gt;addPaymentMethod($paymentMethod); //$paymentMethod方法是自动生成的 } $user-&gt;invoicePrice('price_xxxxxxx', 1, [], [ 'description' =&gt; '这是一个虚拟描述', 'currency' =&gt; 'usd', 'receipt_email' =&gt; 'john@doe.com' ]);</pre> <p>运行代码后什么都没有发生,我查看了我的stripe仪表板,什么都没有看到。我的目标是向用户收费并为他们生成发票,以便我以后可以通过像这样的代码访问这些发票<code>$user-&gt;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的产品时(非常感谢之前发布这个问题的人!!)。

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号