ASP.NET CORE & Angular (single solution) .NET 6.0 v11.1.0
When register a new tenant with stripe in live mode the payment get stuck on:
https://www.fitpeopleusa.com/account/stripe-payment-result?sessionId=cs_live********** Please Wait Receiving payment result. Please wait
When using stripe in test mode in local debug with Stripe CLI Listener it works
Tenant is created, but is not active.
Webhook Log in Stripe gives an 405 Error for both checkout.session.completed and invoice.paid <!DOCTYPE html><html><head><title>UnsupportedHttpVerb</title></head><body><h1>The resource doesn't support specified Http Verb.</h1><p><ul><li>HttpStatusCode: 405</li><li>ErrorCode: UnsupportedHttpVerb</li><li>RequestId : 181beb7c-601e-0018-39ad-585e8a000000</li><li>TimeStamp : 2022-04-25T14:02:22.0604296Z</li></ul></p></body></html>
Stripe API version: 2020-08-27
No errors in log file
Please help!
9 Answer(s)
-
0
Hi,
Could this be a version issue again similar to https://support.aspnetzero.com/QA/Questions/10354/Testing-stripe-webhook--UnsupportedHttpVerb ?
-
0
Hi, I already checked that and it worked before, looks like transfer from .NET 5.0 to .NET 6.0 made it stop working, but i am not sure. Funny thing when i debug local with Stripe CLI listener it works. Any other AZN users experience the same?
-
0
[HttpPost] public async Task<IActionResult> WebHooks() { string json; using (var streamReader = new StreamReader(HttpContext.Request.Body)) { json = await streamReader.ReadToEndAsync(); } Logger.debug("Json = " + json);
To be sure, does Logger.debug show when in production?
Meanwhile i found out it gets timed-out in the getPaymentResult loop in stripe-payment-result.component.ts
getPaymentResult(): void { this._stripePaymentService.getPaymentResult(this.paymentId).subscribe( (paymentResult) => { if (paymentResult.paymentDone) { this._router.navigate(['account/payment-completed']); } else { this.controlAgain(); } }, (err) => { this.controlAgain(); } ); }
Checking the database record in dbo.AppSubscriptionPayments Is says Status = 1 (NotPaid)
-
0
Hi @rvanwoezik
To be sure, does Logger.debug show when in production?
This depends on your log4net.config file but you can use Logger.Warn just to be sure. Yes, if the payment status doesn't change to Paid, UI will wait for it to finish and will never return the result page. Maybe we can add a timeout on our side here.
-
0
But the question is, why doesn't change the payment status to Paid? While it works local in debug with the Stripe CLI Listener
Is it because of Azure handling? Is it i because i have Sign In without specifying Tenant Or is it i have one user per tenant for billing
-
0
Hi @rvanwoezik
There might be several problems here. If the webhook doesn't hit to your application, then the payment status will not be changed. So, first, you need to be sure if webhook in production hits your app or not. In order to do that, it is better to write a log on your app as I suggested above. You can also check webhook request status on your Stripe portal.
If webhook hits your app, then it might be related to item 2 or 3 you shared above. We can dig further after being sure about webhook reaches your app or not.
-
0
I have send you an email directly on 5th of May, 2022 to [email protected] Maybe you have missed it.
Can you please check!
Kind Regards Rene van Woezik
-
0
Hi @rvanwoezik
Sorry, we have replied to your email.
Thanks,