Maison  >  Questions et réponses  >  le corps du texte

La méthode BillPrice() du caissier Laravel ne fonctionne pas correctement

<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粉269847997P粉269847997440 Il y a quelques jours479

répondre à tous(1)je répondrai

  • P粉716228245

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

    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.

    répondre
    0
  • Annulerrépondre