2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
您要求 Stripe 聯(lián)系本地主機(jī),以便您可以在本地測(cè)試您的代碼,但因?yàn)樗皇枪?URL,Stripe 看不到它,也無(wú)法向您發(fā)送請(qǐng)求。使用“l(fā)ocalhost”只會(huì)在你的機(jī)器上工作。
要在本地使用 Stripe webhooks 測(cè)試您的代碼,您可以使用 expose.sh 使用 Stripe 可以使用的公共 HTTPS URL 公開(kāi)您的本地服務(wù)器。
安裝暴露.sh
對(duì)于 Mac 或 Linux,轉(zhuǎn)到Expose.sh并將顯示的安裝代碼復(fù)制/粘貼到終端中。
對(duì)于 Windows,轉(zhuǎn)到Expose.sh,下載二進(jìn)制文件并將其放在您的 PATH 中的某個(gè)位置。
將您的本地 API 服務(wù)器公開(kāi)到網(wǎng)絡(luò)
啟動(dòng)您的 API 服務(wù)器。然后運(yùn)行,expose <port>
其中端口是您的 API 服務(wù)器運(yùn)行的端口,例如 80 或 8080。
Expose.sh 將生成一個(gè)隨機(jī)的公共 expose.sh URL。你會(huì)看到類(lèi)似的輸出
https://s3rh.expose.sh?is?forwarding?to?localhost:80 http://s3rh.expose.sh?is?forwarding?to?localhost:80
然后您可以讓 Stripe 使用公共 HTTPS URL,該 URL 將轉(zhuǎn)發(fā)到您本地運(yùn)行的服務(wù)器。
獲得 URL 后,您可以使用stripe listen --events checkout.session.completed --forward-to <https expose.sh url>
輸出中的 URL 進(jìn)行替換,這類(lèi)似于https://s3rh.expose.sh
.

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
我有一個(gè)類(lèi)似的問(wèn)題,我在浪費(fèi)了幾個(gè)小時(shí)后終于設(shè)法解決了。這個(gè)問(wèn)題調(diào)試起來(lái)特別煩人,因?yàn)?Laravel 的日志中沒(méi)有記錄任何內(nèi)容,并且完全錯(cuò)誤地指定格式會(huì)在 Stripe CLI 中返回成功的狀態(tài)代碼。
至少在我的情況下,問(wèn)題是 webhook 事件stripe-webhook.php需要完全用下劃線分隔:
'jobs' => [
"payment_intent_succeeded" => \App\Jobs\StripeWebhooks\PaymentIntentSucceeded::class,
// 'source_chargeable' => \App\Jobs\StripeWebhooks\HandleChargeableSource::class,
// 'charge_failed' => \App\Jobs\StripeWebhooks\HandleFailedCharge::class,
],
- 2 回答
- 0 關(guān)注
- 201 瀏覽
添加回答
舉報(bào)