Buyers double-click. Phones lose signal halfway through a payment and the app tries again. Gateways sometimes report the same payment twice. On a prize or auction site, each of these can turn into a buyer paying twice for one thing, followed by a support ticket and a refund. Current versions of PrizeX handle these cases. This post explains how, what you'll see in your admin, and where the limits are.

This post is about PrizeX, the real-money edition sold on startmymarketplace.com. PrizeX Rewards, the coins edition, takes no payments.

One click, one order

A double click on checkout, a second tab or a retried checkout no longer creates a second payment request. The buyer is taken to the payment request that's already open for the same cart, so the same goods can't be bought twice by accident. This covers the cart checkout and Buy now. If the buyer changes the cart, the address or the coupon, that's a new purchase and gets its own payment request.

Wallet top-ups work the same way. Pay is disabled as soon as it's tapped. A second top-up for the same amount within ten seconds, from the storefront or the app, goes to the payment page of the first one.

One payment, one order

When a payment comes in, PrizeX marks its payment request as paid in a single step that only one payment can win. If the gateway sends its confirmation twice, or the buyer reloads the return page, the second attempt finds the request already paid and stops. The order is fulfilled once.

A second payment is kept, not lost

Sometimes the money really is taken twice: the buyer pays in two tabs, or pays again because the first payment looked stuck. PrizeX can't undo a charge at your payment provider. Instead, it makes sure the second payment isn't lost or quietly added to the order.

This works with gateways that report their own payment ID, which most do. Many gateways, including PayPal, Razorpay, Authorize.Net, Flutterwave and Paytm, also tell the buyer that the extra payment is held for the store to refund.

Tickets and spins

For the app cases, the app sends a key with its request, so a retry can be matched to the first try. A request sent without a key works as it did before. If you build your own app on the PrizeX API, send the key with each ticket purchase and spin.

Staff logged in as a customer can't spend

Support staff sometimes log in as a customer to see what they see. While they're logged in that way, they can't spend or move the customer's money. Checkout, Buy now, ticket purchases, top-ups, wallet payments, withdrawals and transfers are refused with a message. Each refused attempt is written to the admin log with the staff member's name and the customer's.

What it doesn't cover

What you need

The protections in this post need these versions or later. Update your store and its add-ons to get them:

FAQ

Does PrizeX refund a double charge automatically?

No. It lists the second payment under Payment requests › Paid, not ordered, marked Charged twice, and you refund it at your payment provider. The original order isn't changed.

What does a buyer see after a double click on checkout?

They're taken to the payment request that's already open for the same cart, so there's one order to pay, not two.

Does this work with every payment gateway?

No. Matching a second payment to the first needs the gateway to report its own payment ID, which most do. Skrill doesn't, so a second Skrill payment isn't matched.

Can my support team buy something while logged in as a customer?

No. While logged in as a customer, staff can't spend or move that customer's money, and each refused attempt is written to the admin log.

PrizeX — mystery boxes, auctions, prize draws and a shop in one Checkout, wallet and payments that guard against double charges. One-time licence.