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.
Hey Community 👋 Did you know that March 15th is National Everything You Think Is W...
By JasonH Apr 1, 2025Discover how to increase the efficiency of commerce operations with Shopify Academy's l...
By Jacqui Mar 26, 2025Shopify and our financial partners regularly review and update verification requiremen...
By Jacqui Mar 14, 2025