PayAny

WeChat Pay · Alipay

One API to get paid in China

A hosted checkout for WeChat Pay and Alipay. Plug in your own merchant accounts, create a payment with one API call, and get a signed webhook when it's paid. Money goes straight to you.

JSAPINativeH5Alipay PageAlipay Wap

Everything a checkout needs

Payers pay the way that suits where they opened the link. You only deal with one API.

Pay inside WeChat

Links opened in WeChat get silent OAuth and the JSAPI pay sheet. After paying, the page closes and the payer is back in the chat.

QR, H5 and Alipay

Desktop shows a WeChat QR code or Alipay page pay; mobile browsers get WeChat H5 or Alipay wap.

Your own merchants

Add WeChat Pay and Alipay merchants in the console. Secrets are encrypted and never shown again; money settles to you.

Many apps, one account

Each product gets its own app: API key, webhook, allowed return hosts, and which merchants it charges through.

Signed webhooks

payment.succeeded and refund events are HMAC-signed and retried until your server answers. Every delivery is logged.

Refunds and reconciliation

Full or partial refunds by API or console. Duplicate payments are detected and can be refunded in one click.

Live in three steps

No SDK needed. One HTTP call to create a payment, one webhook to fulfil the order.

  1. 1

    Add a merchant

    Enter your WeChat Pay or Alipay merchant credentials and run the built-in check.

  2. 2

    Create an app

    Pick its merchants, set the webhook URL, and copy the API key (shown once).

  3. 3

    Call the API

    Create a payment, send the payer to checkout_url, and fulfil when the webhook arrives.

POST /api/v1/payments
curl https://pay.thinkany.cn/api/v1/payments \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "out_trade_no": "order_10001",
    "amount": 990,
    "description": "100 credits"
  }'
201 Created
{
  "id": "pay_...",
  "status": "pending",
  "amount": 990,
  "checkout_url": "https://pay.thinkany.cn/pay/pay_..."
}
webhook
POST https://your-app.com/webhook
PayAny-Signature: t=1731000000,v1=5f2b...

{ "type": "payment.succeeded",
  "data": { "out_trade_no": "order_10001",
            "amount": 990, "status": "paid" } }

FAQ

What you may want to know before integrating.

Start taking payments

Add your merchant, create an app, and take your first payment in minutes.