Double Payment Issue on “Media Kit” Purchase


Platform: Blocklet Store Pages/Modules Affected: Payment Kit purchase, Virtual Gift Card purchase, Media Kit dependency flow Device: PC & Mobile Severity: 🔴 High (Billing / Purchase flow / UX)
🧩 Summary
Purchasing Payment Kit or Virtual Gift Card requires (or prompts to purchase) a Media Kit as a prerequisite. The system either forces users to buy a Media Kit even when they already own one, or blocks the purchase if a Media Kit is not present — leading to duplicate purchases, extra cost, or blocked checkout flows.
🪜 Steps to Reproduce
- Log in to the app (Blocklet Store).
- Ensure you have already purchased a Media Kit (or alternatively, start without one).
- Attempt to purchase Payment Kit. Observe whether the flow:
- Forces you to buy a Media Kit again, OR
- Blocks purchase and prompts to buy Media Kit first.
- Repeat with Virtual Gift Card purchase flow.
- Note if the system:
- Detects existing Media Kit ownership, or
- Allows/forces an extra Media Kit purchase, or
- Provides no clear info about the dependency.
✅ Expected Behavior
- The system should detect if the user already owns a Media Kit and allow the purchase of Payment Kit / Virtual Gift Card without requiring the user to repurchase Media Kit.
- If Media Kit is a true prerequisite, the UI must:
- Clearly show the dependency before checkout, and
- Offer to link/associate the existing Media Kit to the new product (no extra purchase).
- Prevent duplicate purchases by checking entitlement server-side before charging.
❌ Actual Behavior
- Users are prompted or forced to purchase a Media Kit during Payment Kit / Virtual Gift Card checkout even if they already have one.
- In other cases, the purchase is blocked with no clear explanation until Media Kit is bought.
- No option to associate or reuse existing Media Kit entitlement.
- Customers can be charged more than once or unable to complete purchase without extra cost.
⚠️ Impact
- Duplicate billing and financial loss for users.
- Blocked purchases / poor conversion for products (Payment Kit, Virtual Gift Card).
- Frustration and distrust — severe UX and business impact.
🔍 Possible Causes
- Frontend does not check user entitlement for Media Kit before showing purchase flow.
- Backend accepts purchase requests without verifying existing ownership.
- Product dependency logic is missing or incorrectly implemented.
- UI lacks clear messaging about prerequisites and entitlement linking.
🧰 Suggested Fixes
- Enforce entitlement checks server-side before showing or enabling purchase:
if user.hasMediaKit => allow purchaseelse => show clear prerequisite message with single-click purchase + auto-link
- Prevent duplicate purchases by disabling/hiding the Media Kit Buy button if
user.hasMediaKit == true. - Provide an “Associate existing Media Kit” flow so Payment Kit / Virtual Gift Card can reuse the Media Kit without re-purchase.
- Improve UI messaging: show dependency up front (e.g., “Media Kit required — you already own Media Kit (linked) / Buy Media Kit”).
- Offer bundles or combined purchase (discounted or one-click bundle) to avoid friction.
- Add audit logs / billing checks to catch duplicate charges and provide admin refund workflow.
4 replies
What each payment purchasing is not the software, all existing software (blocklets) are free now, you are purchasing the space to run the software.
This is by design.
I want to see my real time billing and it's consuming a lot of time
Please goto: https://launcher.arcblock.io/payment/customer
I want real time result so I can easily get the total.