App reviews, troubleshooting, and recommendations
Hi there,
Everything works on dev but when Shopify Apps team tested my app, they are stuck in the billing page (it keeps looping again and again).
Here's my ensure billing middleware:
import express from "express"; import shopify from "../shopify.js"; export async function ensureBillingMiddleware( req: express.Request, res: express.Response, next: express.NextFunction ) { const session = res.locals.shopify.session const result = await ensureBilling(session) if (result.paymentUrl) { res.status(403); res.header("X-Shopify-API-Request-Failure-Reauthorize", "1"); res.header("X-Shopify-API-Request-Failure-Reauthorize-Url", result.paymentUrl); res.end(); return } next() } async function ensureBilling( session: any, isProdOverride = process.env.ENV === 'production' ) { let hasPayment = true; let confirmationUrl: string | null = null; if (shopify.api.config.billing) { hasPayment = await shopify.api.billing.check({ session, plans: Object.keys(shopify.api.config.billing), isTest: !isProdOverride, }); if (!hasPayment) { // Realistically, if there are more than one plan to choose from, you should redirect to // a page that allows the merchant to choose a plan. // For this example, we'll just redirect to the first plan confirmationUrl = await shopify.api.billing.request({ session, plan: Object.keys(shopify.api.config.billing)[0], isTest: !isProdOverride, }); } } return { hasPayment: hasPayment, paymentUrl: confirmationUrl }; }
app.use("/api/*", ensureBillingMiddleware)
Anyone faced the same issue?
Thanks!
I am having the same issues, did you manage to find a resolution?
Hi @yadsgroup - did you ever find a solution for this? Currently experiencing the same problem.
By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024Thanks to everyone who participated in our AMA with 2H Media: Marketing Your Shopify St...
By Jacqui Sep 6, 2024