La méthode BillPrice() du caissier Laravel ne fonctionne pas correctement
P粉269847997
P粉269847997 2023-08-29 10:12:00
0
1
511
<p>J'essaie d'utiliser Laravel Cashier et Stripe pour générer une facture instantanément et facturer l'utilisateur, mais cela ne fonctionne pas. Je fais référence aux exemples d'extraits de code dans la documentation laravel-8 pour ce faire. </p> <pre class="brush:php;toolbar:false;">$user->invoicePrice('price_tshirt', 5, [ 'réductions' => ['coupon' => 'VENTE ÉTÉ21'] ], ], [ 'default_tax_rates' => ['txr_id'], ]);≪/pré> <p>J'ai créé un produit dans mon tableau de bord Stripe et j'ai remplacé « price_tshirt » par l'ID de prix du produit. Le code final ressemble à ceci</p> <pre class="brush:php;toolbar:false;">if(!$user->hasPaymentMethod()){ $user->addPaymentMethod($paymentMethod); //La méthode $paymentMethod est générée automatiquement } $user->invoicePrice('price_xxxxxxx', 1, [], [ 'description' => 'Ceci est une description virtuelle', 'devise' => 'USD', 'receipt_email' => 'john@doe.com' ]);≪/pré> <p>Après avoir exécuté le code, rien ne s'est produit, j'ai regardé mon tableau de bord Stripe et je n'ai rien vu. Mon objectif est de facturer les utilisateurs et de générer des factures pour eux afin de pouvoir accéder ultérieurement à ces factures via un code comme celui-ci <code>$user->invoices()</code></p> <p>Remarque : J'utilisais <code>$user->charge(100, $paymentMethod);</code> et cela fonctionnait parfaitement mais n'a généré aucune facture, alors j'ai décidé d'utiliser <code>$user à la place - >invoiceFor()</code>, cette méthode génère uniquement une facture, mais l'utilisateur n'est pas facturé. J'ai décidé de changer à nouveau et d'utiliser <code>$user->invoicePrice()</code>, mais cela n'a pas fonctionné du tout. Je dois laisser les utilisateurs gérer leurs factures après le paiement, mais je ne trouve pas de méthode qui m'aide à le faire (générer des factures et des frais). Je ne sais pas ce que je fais de mal, aidez-moi s'il vous plaît. </p>
P粉269847997
P粉269847997

répondre à tous(1)
P粉716228245

On dirait que le problème est que Laravel utilise un "ending_invoice_items_behavior" qui est désactivé par Stripe en tant que "include_and_require", donc les éléments sont exclus par défaut.

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

J'ai essayé d'ajouter un nouveau paramètre comme celui-ci.

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

Cependant, j'ai également rencontré des erreurs de devise car mes utilisateurs étaient auparavant facturés en CAD lorsque j'essayais le produit en USD (un grand merci à celui qui a déjà posté cette question !!).

Mais lorsque je crée un nouvel utilisateur avec une devise préexistante au lieu d'un client, cela fonctionne.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal