=== PAYWISE for WooCommerce ===
Contributors: paywise
Tags: qris, usdt, payment gateway, indonesia, woocommerce
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
WC requires at least: 8.0
WC tested up to: 11.1
Stable tag: 1.0.0
License: GPLv2 or later

Accept QRIS (any Indonesian bank or e-wallet app) and USDT (BEP20) through PAYWISE's hosted payment page.

== Description ==

Customers choose QRIS or USDT at checkout, pay on the secure PAYWISE payment page and come back to their order. The order is marked paid only after PAYWISE's API confirms the payment: never from the return URL or an unverified request.

* QRIS in rupiah: GoPay, OVO, DANA, ShopeePay and every mobile banking app.
* USDT on BNB Smart Chain (BEP20).
* Classic and block checkout, WooCommerce order tables (HPOS).
* Signed webhooks (HMAC-SHA256) for customers who close the page after paying.
* Sandbox keys and a "Simulate the result" button to test before going live.

== Installation ==

1. Plugins → Add New → Upload Plugin, choose paywise-for-woocommerce-1.0.0.zip, then Activate.
2. In the PAYWISE dashboard, under Websites, add your store's domain and turn on its Payment page.
3. Create an API key (Dashboard → API keys): pw_test_… to test, pw_live_… for real payments.
4. WooCommerce → Settings → Payments → PAYWISE QRIS: paste the API key and enable it.
5. Webhook: set the website's webhook URL in PAYWISE to https://your-store/?wc-api=paywise and paste its webhook secret in the plugin settings.
6. USDT: enable PAYWISE USDT (store currency USDT, or USD with "Charge USD prices as USDT").

Test with the sandbox key: place an order, then on the PAYWISE payment page choose Paid, Failed or Expired under "Simulate the result". Switch to the live key when you are ready.

== Frequently Asked Questions ==

= Which currency does my store need? =
QRIS: Indonesian rupiah (IDR). USDT: USDT, or US dollar with "Charge USD prices as USDT" on (1 USD = 1 USDT; PAYWISE never converts).

= The customer paid but closed the page. =
The webhook marks the order paid. Without a webhook, the order is updated when the customer opens the order page again.

= A payment expired. =
The order becomes Failed and the customer can pay it again from the order page; a new PAYWISE payment is created.

== Changelog ==

= 1.0.0 =
* First release: QRIS and USDT (BEP20), hosted payment page, signed webhooks, block checkout, HPOS.
