{"id":339863,"date":"2026-07-19T11:41:48","date_gmt":"2026-07-19T11:41:48","guid":{"rendered":"https:\/\/cn.wordpress.org\/plugins\/ainepay-for-woocommerce\/"},"modified":"2026-07-19T11:41:21","modified_gmt":"2026-07-19T11:41:21","slug":"ainepay-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/bel.wordpress.org\/plugins\/ainepay-for-woocommerce\/","author":23529755,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0.2","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"AinePay for WooCommerce","header_author":"AinePay","header_description":"Accept non-custodial USDT\/USDC stablecoin payments in WooCommerce through AinePay, with local payment-address verification.","assets_banners_color":"","last_updated":"2026-07-19 11:41:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/ainepay\/ainepay-for-woocommerce","header_author_uri":"https:\/\/ainepay.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"ainepay","date":"2026-07-19 11:41:21"}},"upgrade_notice":{"0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3613503,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3613503,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3613503,"resolution":"1","location":"assets","locale":"","width":2854,"height":3368},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3613503,"resolution":"2","location":"assets","locale":"","width":2808,"height":3471},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3613503,"resolution":"3","location":"assets","locale":"","width":2012,"height":1284}},"screenshots":{"1":"Configure the merchant profile, contract parameters, callback URL, API keys, and collection addresses in the AinePay dashboard.","2":"Configure the AinePay payment gateway in WooCommerce, including API credentials, collection address, contract parameters, supported coins, and diagnostics.","3":"The customer payment screen showing the amount, network, QR code, payment address, countdown, and order cancellation option."}},"plugin_section":[],"plugin_tags":[6593,231844,209195,204245,286],"plugin_category":[45],"plugin_contributors":[272311],"plugin_business_model":[],"class_list":["post-339863","plugin","type-plugin","status-publish","hentry","plugin_tags-payment-gateway","plugin_tags-stablecoin","plugin_tags-usdc","plugin_tags-usdt","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-ainepay","plugin_committers-ainepay"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ainepay-for-woocommerce\/assets\/icon-128x128.png?rev=3613503","icon_2x":"https:\/\/ps.w.org\/ainepay-for-woocommerce\/assets\/icon-256x256.png?rev=3613503","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ainepay-for-woocommerce\/assets\/screenshot-1.png?rev=3613503","caption":"Configure the merchant profile, contract parameters, callback URL, API keys, and collection addresses in the AinePay dashboard."},{"src":"https:\/\/ps.w.org\/ainepay-for-woocommerce\/assets\/screenshot-2.png?rev=3613503","caption":"Configure the AinePay payment gateway in WooCommerce, including API credentials, collection address, contract parameters, supported coins, and diagnostics."},{"src":"https:\/\/ps.w.org\/ainepay-for-woocommerce\/assets\/screenshot-3.png?rev=3613503","caption":"The customer payment screen showing the amount, network, QR code, payment address, countdown, and order cancellation option."}],"raw_content":"<!--section=description-->\n<p>AinePay for WooCommerce lets your store accept <strong>non-custodial<\/strong> stablecoin payments (USDT \/ USDC) through <a href=\"https:\/\/ainepay.com\">AinePay<\/a>.<\/p>\n\n<p>When a customer chooses AinePay at checkout, the plugin creates an order with AinePay and shows the customer a payment address. Crucially, the plugin <strong>verifies locally<\/strong> \u2014 without trusting the server \u2014 that the address is deterministically derived (via CREATE2) from your own collection address. If verification fails, the address is never shown and the order is marked failed. This protects you from a tampered backend ever diverting funds.<\/p>\n\n<p>Order status is guaranteed by active AinePay order polling. Signed webhooks speed up updates but are not the only source of truth.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Non-custodial USDT \/ USDC payments; funds settle to your own collection address.<\/li>\n<li>Local CREATE2 address verification before any address is displayed.<\/li>\n<li>HMAC-SHA256 request signing and webhook signature verification.<\/li>\n<li>Classic checkout and Cart\/Checkout Blocks support.<\/li>\n<li>HPOS (High-Performance Order Storage) compatible.<\/li>\n<li>QR code, copy-to-clipboard, countdown, and live status on the order page.<\/li>\n<li>Active order polling for final consistency; signed webhooks accelerate updates.<\/li>\n<\/ul>\n\n<h4>How payments are reused<\/h4>\n\n<p>AinePay does not issue automatic refunds or custody the underlying funds. If a\npayment is late or the window expires, AinePay may record the amount as a\nreusable ledger credit. A logged-in customer who places another order applies\nthat credit automatically. Guest orders are not linked across orders, so a\nguest credit cannot be reused automatically.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the AinePay API to create orders, fetch supported coins,\nand query order status. It is required for the plugin to function.<\/p>\n\n<ul>\n<li><strong>What is sent:<\/strong> your API key (in a request header), an HMAC signature, a\ntimestamp, the order amount, the selected coin\/chain, a site-namespaced order\nidentifier, and a pseudonymous user identifier derived as\n  sha256(site + \"|\" + customer id) for logged-in customers, or a\nper-order key for guests. No email address or other personal data is sent.<\/li>\n<li><strong>When:<\/strong> when a customer places an AinePay order, when you save settings\n(to load supported coins), and when order status is queried.<\/li>\n<li><strong>Endpoints:<\/strong> <code>https:\/\/api.ainepay.com<\/code>. Additional HTTPS test hosts require an explicit developer allowlist filter.<\/li>\n<li>AinePay also sends signed webhooks to <code>https:\/\/your-site\/ainepay\/notify<\/code>.<\/li>\n<\/ul>\n\n<p>Service provider: AinePay \u2014 https:\/\/ainepay.com\nTerms: https:\/\/ainepay.com\/en\/terms \u2014 Privacy: https:\/\/ainepay.com\/en\/privacy<\/p>\n\n<h3>Usage<\/h3>\n\n<ol>\n<li>Open WooCommerce &gt; Settings &gt; Payments &gt; AinePay.<\/li>\n<li>Enter your AinePay API Key, API Secret, Notify Secret, Merchant ID, Collection Address, and forwarder contract parameters.<\/li>\n<li>Save the settings, then enable the supported coin\/chain pairs you want to offer.<\/li>\n<li>Set the AinePay dashboard notification URL to your site base URL, for example <code>https:\/\/example.com<\/code>. AinePay will call <code>https:\/\/example.com\/ainepay\/notify<\/code>. Webhook only accelerates updates; active polling guarantees final status.<\/li>\n<li>Click \"Test connection &amp; configuration\" to verify API reachability and local address verification.<\/li>\n<li>Customers select AinePay at checkout, choose a coin\/chain, and place the order. The plugin verifies the payment address locally before showing the address, QR code, countdown, and live status.<\/li>\n<li>The plugin actively queries AinePay order status. Confirmed payments move the WooCommerce order to processing or completed; expired payments move it to failed.<\/li>\n<\/ol>\n\n<p>Late payments are not refunded by AinePay. Signed-in customers can reuse their remaining balance on a later order because their identity is derived from their authenticated WordPress customer account. Guest orders use a per-order identity and cannot automatically reuse a balance; the customer should contact the store if they paid late.<\/p>\n\n<h4>Third-party fulfilment integrations<\/h4>\n\n<p>Third-party integrations must not fulfil AinePay orders based only on the\nWooCommerce processing or completed status. Use the\n    ainepay_order_paid_backed action, or confirm\n    Ainepay_Order_Sync::is_paid_backed_order( $order ) returns true, before\nshipping goods or granting access.<\/p>\n\n<h3>Support<\/h3>\n\n<p>This plugin is developed and maintained by AinePay (https:\/\/ainepay.com).\nFor help, questions, or to report an issue, contact support@ainepay.com or open\nan issue at https:\/\/github.com\/ainepay\/ainepay-for-woocommerce\/issues.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/ainepay-for-woocommerce<\/code> or install it through the Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to WooCommerce &gt; Settings &gt; Payments &gt; AinePay.<\/li>\n<li>Enter your API Key, API Secret, Notify Secret, Merchant ID and Collection Address (from your AinePay dashboard).<\/li>\n<li>Save to load the supported coins, then enable the coins you want to offer.<\/li>\n<li>In your AinePay dashboard, set the notification URL to your site base (AinePay appends <code>\/ainepay\/notify<\/code>).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>The store currency must be USD (or an equivalent treated 1:1 with the stablecoin amount) in this release.<\/p><\/dd>\n<dt id=\"does%20ainepay%20hold%20my%20funds%3F\"><h3>Does AinePay hold my funds?<\/h3><\/dt>\n<dd><p>No. Payments go to an address deterministically derived from your own collection address; the smart contract enforces settlement to you.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20customer%20pays%20late%3F\"><h3>What happens if a customer pays late?<\/h3><\/dt>\n<dd><p>AinePay does not custody the underlying funds. It may record the late amount as a reusable ledger credit. A logged-in customer can place the order again to apply that credit; guest orders are not linked across orders and cannot reuse it automatically, so the customer should contact the store. AinePay does not issue automatic refunds.<\/p><\/dd>\n<dt id=\"how%20do%20i%20refund%20an%20order%3F\"><h3>How do I refund an order?<\/h3><\/dt>\n<dd><p>Refunds are full-only and follow a two-step, WooCommerce-first procedure. First, open the order in WooCommerce and click Refund for the full amount; this creates the real refund object, updates your sales and stock reports, and marks the order refunded. Then issue the matching refund in the AinePay dashboard. Always do WooCommerce first: if you refund only in the AinePay dashboard, the plugin will reconcile the order status to refunded when it sees the authoritative REFUND, but that does not create a WooCommerce refund object, so your sales\/net reports will not reflect it and stock is not returned. To self-heal such an order, click Refund for the full amount on the WooCommerce order page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: inline payments, local CREATE2 address verification, classic + Blocks checkout, active order polling with webhook acceleration, HPOS compatibility.<\/li>\n<\/ul>","raw_excerpt":"Accept non-custodial USDT\/USDC stablecoin payments in WooCommerce through AinePay. Payment addresses are verified locally before display.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=339863"}],"author":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ainepay"}],"wp:attachment":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339863"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339863"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339863"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339863"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339863"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}