{"id":262248,"date":"2025-12-22T03:06:00","date_gmt":"2025-12-22T03:06:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpkj-wechat-pay-gateway-for-fluentcart\/"},"modified":"2025-12-22T03:05:27","modified_gmt":"2025-12-22T03:05:27","slug":"wpkj-payment-gateway-for-fluentcart-with-wechat","status":"publish","type":"plugin","link":"https:\/\/co.wordpress.org\/plugins\/wpkj-payment-gateway-for-fluentcart-with-wechat\/","author":12152144,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.6","stable_tag":"1.0.6","tested":"6.9.4","requires":"6.5","requires_php":"8.2","requires_plugins":null,"header_name":"WPKJ Payment Gateway for FluentCart with Wechat","header_author":"WPDAXUE.COM","header_description":"WeChat Pay payment gateway integration for FluentCart - Support Native, H5, JSAPI payments","assets_banners_color":"ecfddb","last_updated":"2025-12-22 03:05:27","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.wpdaxue.com\/wpkj-payment-gateway-for-fluentcart-with-wechat.html","header_plugin_uri":"https:\/\/www.wpdaxue.com\/wpkj-payment-gateway-for-fluentcart-with-wechat.html","header_author_uri":"https:\/\/www.wpdaxue.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":178,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"cmhello","date":"2025-12-22 03:05:27"}},"upgrade_notice":{"1.0.6":"<p>Critical bug fixes for PHP 8.0+ compatibility and WordPress.org compliance. Recommended update for all users. Tested with WordPress 6.9.<\/p>","1.0.5":"<p>Maintenance release with naming standardization and bug fixes. Safe update for all users.<\/p>","1.0.4":"<p>Important compatibility update for WordPress.org standards. Recommended for all users.<\/p>","1.0.1":"<p>Enhanced subscription management with professional lifecycle handling and improved security. Recommended for all users.<\/p>","1.0.0":"<p>Initial release of WPKJ Payment Gateway for FluentCart with Wechat gateway. Comprehensive payment solution for WeChat Pay.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3425005,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3425005,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3425005,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3425005,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3425005,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3425005,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3425005,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3425005,"resolution":"4","location":"assets","locale":""},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3425005,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"WPKJ WeChat Pay Gateway in FluentCart payment list","2":"WeChat Pay payment gateway settings page","3":"Payment method selection during checkout","4":"Native payment QR code page for desktop","5":"Payment receipt"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[178844,250438,6593,130205],"plugin_category":[],"plugin_contributors":[250639,251604],"plugin_business_model":[],"class_list":["post-262248","plugin","type-plugin","status-publish","hentry","plugin_tags-china-payment","plugin_tags-fluentcart","plugin_tags-payment-gateway","plugin_tags-wechat-pay","plugin_contributors-cmhello","plugin_contributors-wpdaxue","plugin_committers-cmhello"],"banners":{"banner":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/banner-772x250.jpg?rev=3425005","banner_2x":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/banner-1544x500.jpg?rev=3425005","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/icon-128x128.jpg?rev=3425005","icon_2x":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/icon-256x256.jpg?rev=3425005","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/screenshot-1.jpg?rev=3425005","caption":"WPKJ WeChat Pay Gateway in FluentCart payment list"},{"src":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/screenshot-2.jpg?rev=3425005","caption":"WeChat Pay payment gateway settings page"},{"src":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/screenshot-3.jpg?rev=3425005","caption":"Payment method selection during checkout"},{"src":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/screenshot-4.jpg?rev=3425005","caption":"Native payment QR code page for desktop"},{"src":"https:\/\/ps.w.org\/wpkj-payment-gateway-for-fluentcart-with-wechat\/assets\/screenshot-5.jpg?rev=3425005","caption":"Payment receipt"}],"raw_content":"<!--section=description-->\n<p>WPKJ Payment Gateway for FluentCart with Wechat is an enterprise-grade payment gateway that seamlessly integrates WeChat Pay with FluentCart. It intelligently detects user environments and automatically selects the optimal payment interface.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><p><strong>Multi-Platform Payment Support<\/strong>\n\u2013 Native Payment for PC desktop with QR codes\n\u2013 H5 Payment for mobile browsers\n\u2013 JSAPI Payment for WeChat in-app browsers [Not yet completed]\n\u2013 Intelligent client detection<\/p><\/li>\n<li><p><strong>Subscription Management<\/strong>\n\u2013 Manual renewal mode for subscription payments\n\u2013 Trial period support (0-365 days)\n\u2013 Flexible billing intervals (daily, weekly, monthly, yearly)\n\u2013 Subscription cancellation sync with orders (configurable)\n\u2013 Automatic status tracking<\/p><\/li>\n<li><p><strong>Comprehensive Refund System<\/strong>\n\u2013 Automatic refunds when orders are cancelled\n\u2013 Manual refund processing from admin [Not yet completed]\n\u2013 Full and partial refund support [Not yet completed]\n\u2013 Requires SSL certificates\n\u2013 Detailed activity logging<\/p><\/li>\n<li><p><strong>Enterprise Security<\/strong>\n\u2013 Dual signature support (MD5 and HMAC-SHA256)\n\u2013 Signature verification for all requests\n\u2013 SSL\/HTTPS required\n\u2013 Webhook validation\n\u2013 Amount verification\n\u2013 Secure API communication<\/p><\/li>\n<li><p><strong>Developer Friendly<\/strong>\n\u2013 Clean PSR-4 autoloading architecture\n\u2013 Comprehensive hooks and filters\n\u2013 Debug logging support\n\u2013 Payment status polling\n\u2013 Extensive documentation<\/p><\/li>\n<\/ul>\n\n<h4>Important Notes<\/h4>\n\n<p><strong>WeChat Pay does NOT provide a public sandbox environment.<\/strong> Testing must be done in production with small amounts (e.g., \u00a50.01).<\/p>\n\n<p><strong>WeChat Pay does NOT support automatic recurring payments.<\/strong> Each subscription renewal requires manual customer payment.<\/p>\n\n<h4>Supported Payment Methods<\/h4>\n\n<ul>\n<li>Native Payment (PC QR Code)<\/li>\n<li>H5 Payment (Mobile)<\/li>\n<li>JSAPI Payment (WeChat Browser) [Not yet completed]<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>FluentCart 1.2.0 or higher<\/li>\n<li>WordPress 6.5 or higher<\/li>\n<li>PHP 8.2 or higher<\/li>\n<li>SSL Certificate (HTTPS) required<\/li>\n<li>WeChat Pay merchant account<\/li>\n<\/ul>\n\n<h4>Architecture<\/h4>\n\n<p>Built on the proven architecture of WPKJ FluentCart Alipay Payment plugin with 65%+ code reusability, ensuring reliability and maintainability.<\/p>\n\n<h3>Support and Documentation<\/h3>\n\n<p>For comprehensive documentation, tutorials, and support:<\/p>\n\n<ul>\n<li><strong>Official Website<\/strong>: <a href=\"https:\/\/www.wpdaxue.com\">https:\/\/www.wpdaxue.com<\/a><\/li>\n<li><strong>Documentation<\/strong>: <a href=\"https:\/\/www.wpdaxue.com\/wpkj-payment-gateway-for-fluentcart-with-wechat.html\">https:\/\/www.wpdaxue.com\/wpkj-payment-gateway-for-fluentcart-with-wechat.html<\/a><\/li>\n<li><strong>Support Email<\/strong>: support@wpdaxue.com<\/li>\n<\/ul>\n\n<h3>Privacy and Data<\/h3>\n\n<p>This plugin does NOT:\n\u2013 Collect any user data\n\u2013 Send data to third parties (except WeChat Pay for payment processing)\n\u2013 Track users\n\u2013 Store sensitive payment information<\/p>\n\n<p>Payment data is transmitted securely via HTTPS directly to WeChat Pay's servers. The plugin only stores transaction IDs and order metadata necessary for order fulfillment.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin relies on external services for payment processing. Below is documentation for each external service:<\/p>\n\n<h3>Wechat Payment Gateway<\/h3>\n\n<p><strong>Service<\/strong>: Wechat Payment Gateway API\n<strong>What it is<\/strong>: Official payment processing service operated by Wechat Pay, a third-party payment service from China.\n<strong>What it's used for<\/strong>: Process online payments from customers using Wechat accounts\n<strong>Data sent<\/strong>: Order ID, order amount, customer email, payment description\/subject, currency, and timeout configuration\n<strong>When it's sent<\/strong>: When a customer initiates a payment and selects Wechat as the payment method\n<strong>Data sent to<\/strong>: Wechat Pay servers (https:\/\/api.mch.weixin.qq.com)\n<strong>WeChat Pay Service Terms<\/strong>: <a href=\"https:\/\/pay.weixin.qq.com\/static\/protocol\/protocol_normal_v3.shtml\">https:\/\/pay.weixin.qq.com\/static\/protocol\/protocol_normal_v3.shtml<\/a>\n<strong>WeChat Pay Privacy Policy<\/strong>: <a href=\"https:\/\/pay.weixin.qq.com\/static\/protocol\/protocol_normal_v3.shtml\">https:\/\/pay.weixin.qq.com\/static\/protocol\/protocol_normal_v3.shtml<\/a>\n<strong>Additional Info<\/strong>: Communication is RSA2 2048-bit encrypted. Wechat Pay returns trade status, transaction ID, and buyer information.<\/p>\n\n<h3>User Consent<\/h3>\n\n<p>Users are informed about Wechat payment processing when they select Wechat as their payment method. They accept data transmission to Wechat's services as part of the payment process. The Wechat Pay terms and privacy policy are accessible via links above.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>Developed by: WPDAXUE.COM<\/li>\n<li>Framework: FluentCart Payment Gateway API<\/li>\n<li>Contributors: WordPress community<\/li>\n<li>Special Thanks: FluentCart team for excellent payment framework, and Wechat Pay for their robust payment solution<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin panel<\/li>\n<li>Navigate to Plugins &gt; Add New<\/li>\n<li>Search for \"WPKJ Payment Gateway for FluentCart with Wechat\"<\/li>\n<li>Click \"Install Now\" and then \"Activate\"<\/li>\n<li>Go to FluentCart &gt; Settings &gt; Payment Methods<\/li>\n<li>Configure your WeChat Pay credentials<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Upload to <code>\/wp-content\/plugins\/wpkj-payment-gateway-for-fluentcart-with-wechat\/<\/code><\/li>\n<li>Activate through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to FluentCart &gt; Settings &gt; Payment Methods<\/li>\n<li>Configure WeChat Pay gateway settings<\/li>\n<li>Enable the payment method<\/li>\n<\/ol>\n\n<h4>Configuration Steps<\/h4>\n\n<ol>\n<li><p><strong>Obtain Credentials from WeChat Pay:<\/strong>\n\u2013 Register at <a href=\"https:\/\/pay.weixin.qq.com\/\">WeChat Pay Merchant Platform<\/a>\n\u2013 Complete merchant verification\n\u2013 Get App ID (starts with \"wx\")\n\u2013 Get Merchant ID (10 digits)\n\u2013 Generate 32-character API Key\n\u2013 Optional: Get App Secret (for JSAPI)<\/p><\/li>\n<li><p><strong>Download SSL Certificates (For Refunds):<\/strong>\n\u2013 Login to WeChat Pay merchant platform\n\u2013 Download SSL certificates\n\u2013 Upload <code>apiclient_cert.pem<\/code> and <code>apiclient_key.pem<\/code> to server\n\u2013 Enter file paths in plugin settings<\/p><\/li>\n<li><p><strong>Configure Plugin Settings:<\/strong>\n\u2013 Enter App ID, Merchant ID, and API Key\n\u2013 Optional: Enter App Secret for JSAPI\n\u2013 Select signature type (HMAC-SHA256 recommended)\n\u2013 Configure SSL certificate paths for refunds\n\u2013 Enable\/disable auto-refund\n\u2013 Enable\/disable JSAPI payment<\/p><\/li>\n<li><p><strong>Configure Webhook:<\/strong>\n\u2013 Copy Notify URL from plugin settings\n\u2013 Add to WeChat Pay merchant dashboard\n\u2013 Save configuration<\/p><\/li>\n<li><p><strong>Test Your Setup:<\/strong>\n\u2013 Use production environment with \u00a50.01\n\u2013 Make a test purchase\n\u2013 Verify webhook notifications\n\u2013 Test refund functionality<\/p><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='where%20do%20i%20get%20wechat%20pay%20credentials%3F'><h3>Where do I get WeChat Pay credentials?<\/h3><\/dt>\n<dd><p>Register for a merchant account at <a href=\"https:\/\/pay.weixin.qq.com\/\">WeChat Pay Merchant Platform<\/a>. After verification, you'll receive App ID, Merchant ID, and can generate an API Key.<\/p><\/dd>\n<dt id='does%20this%20plugin%20support%20subscription%20payments%3F'><h3>Does this plugin support subscription payments?<\/h3><\/dt>\n<dd><p>Yes! The plugin supports FluentCart subscriptions with manual renewal mode. Each renewal requires the customer to manually complete payment, as WeChat Pay does not support automatic recurring charges.<\/p><\/dd>\n<dt id='can%20i%20test%20before%20going%20live%3F'><h3>Can I test before going live?<\/h3><\/dt>\n<dd><p>WeChat Pay does not provide a public sandbox. You must test in production using small amounts (\u00a50.01 is recommended for testing).<\/p><\/dd>\n<dt id='how%20do%20refunds%20work%3F'><h3>How do refunds work?<\/h3><\/dt>\n<dd><p>Refunds require SSL certificates from WeChat Pay merchant platform. Once configured:\n1. <strong>Automatic<\/strong> \u2013 Enable auto-refund, cancelling orders triggers instant refunds\n2. <strong>Manual<\/strong> \u2013 Process refunds from FluentCart admin panel<\/p>\n\n<p>Both full and partial refunds are supported.<\/p><\/dd>\n<dt id='is%20the%20plugin%20translation%20ready%3F'><h3>Is the plugin translation ready?<\/h3><\/dt>\n<dd><p>Yes, the plugin is fully internationalized with a POT file included. Chinese and English translations are built-in.<\/p><\/dd>\n<dt id='what%20happens%20if%20webhook%20notifications%20fail%3F'><h3>What happens if webhook notifications fail?<\/h3><\/dt>\n<dd><p>The plugin includes a payment status checker that polls WeChat Pay for payment confirmation if webhooks fail, ensuring reliable payment processing.<\/p><\/dd>\n<dt id='how%20does%20native%20payment%20work%3F'><h3>How does Native payment work?<\/h3><\/dt>\n<dd><p>On PC desktop, the plugin generates a QR code. Customers scan with their WeChat app to complete payment. The page automatically updates when payment is confirmed.<\/p><\/dd>\n<dt id='how%20does%20h5%20payment%20work%3F'><h3>How does H5 payment work?<\/h3><\/dt>\n<dd><p>On mobile devices, customers are redirected to WeChat Pay's mobile interface to complete payment, then returned to your site.<\/p><\/dd>\n<dt id='what%20is%20jsapi%20payment%3F'><h3>What is JSAPI payment?<\/h3><\/dt>\n<dd><p>JSAPI is for payments within the WeChat browser. It provides a native WeChat Pay experience without leaving the app. Requires App Secret configuration.<\/p><\/dd>\n<dt id='do%20i%20need%20ssl%20certificates%3F'><h3>Do I need SSL certificates?<\/h3><\/dt>\n<dd><p>Yes, SSL\/HTTPS is required for all production payments. Additionally, refund functionality requires SSL certificates downloaded from WeChat Pay merchant platform.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<p>Release Date: December 19, 2025<\/p>\n\n<ul>\n<li>Fixed: Resolved \"Using $this when not in object context\" error in validateSettings() static method<\/li>\n<li>Fixed: Replaced undefined Logger::debug() calls with Logger::info() method<\/li>\n<li>Fixed: Added phpcs ignore comments for WordPress HTTP API curl configuration (valid usage in http_api_curl hook)<\/li>\n<li>Enhancement: Improved PHP 8.0+ compatibility by removing deprecated curl_close() function<\/li>\n<li>Enhancement: Replaced direct cURL usage with WordPress HTTP API (wp_remote_post) while maintaining SSL client certificate support<\/li>\n<li>Security: Added comprehensive input sanitization for all $_SERVER variables using sanitize_text_field()<\/li>\n<li>Security: Removed third-party QR code API dependency, now using local QRCode.js library exclusively<\/li>\n<li>Compliance: Fixed file path handling to use absolute paths without ABSPATH concatenation<\/li>\n<li>Compliance: Updated all code to meet WordPress.org plugin review standards<\/li>\n<li>Tested: Confirmed compatibility with WordPress 6.9<\/li>\n<li>Maintenance: Regenerated translation template (POT file) with latest strings<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<p>Release Date: December 4, 2025<\/p>\n\n<ul>\n<li>Fixed: Corrected non-standard parameter name in payment status check requests (nonce field renamed to wpkj_wechat_pay_nonce)<\/li>\n<li>Fixed: Unified translator comments for 'SSL certificate file not found' message to ensure translation consistency<\/li>\n<li>Refactor: Renamed plugin directory from 'wpkj-wechat-pay-gateway-for-fluentcart' to 'wpkj-payment-gateway-for-fluentcart-with-wechat' for better clarity<\/li>\n<li>Refactor: Updated text domain from 'wpkj-wechat-pay-gateway-for-fluentcart' to 'wpkj-payment-gateway-for-fluentcart-with-wechat' across all files<\/li>\n<li>Refactor: Renamed main plugin file to 'wpkj-payment-gateway-for-fluentcart-with-wechat.php'<\/li>\n<li>Enhancement: Updated all plugin URIs and documentation links to reflect new naming convention<\/li>\n<li>Maintenance: Regenerated POT file with latest translatable strings<\/li>\n<li>Note: All functionality remains unchanged; this is primarily a maintenance and standardization release<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<p>Release Date: November 24, 2025<\/p>\n\n<ul>\n<li>Fixed: Removed manual <code>load_plugin_textdomain()<\/code> call as WordPress 4.6+ automatically loads translations from WordPress.org<\/li>\n<li>Fixed: Replaced deprecated <code>libxml_disable_entity_loader()<\/code> with <code>LIBXML_NONET<\/code> flag for XML parsing security<\/li>\n<li>Enhancement: Improved PHP 8.0+ compatibility by removing deprecated functions<\/li>\n<li>Compliance: Resolved WordPress.org plugin review issues for better plugin directory standards<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<p>Release Date: November 13, 2025<\/p>\n\n<ul>\n<li>Refactor: Renamed plugin to 'WPKJ WeChat Pay Gateway for FluentCart' for better brand clarity<\/li>\n<li>Refactor: Updated plugin directory from 'wpkj-fluentcart-wechat-payment' to 'wpkj-wechat-pay-gateway-for-fluentcart'<\/li>\n<li>Refactor: Updated text domain from 'wpkj-fluentcart-wechat-payment' to 'wpkj-wechat-pay-gateway-for-fluentcart' across 170+ code references<\/li>\n<li>Refactor: Renamed main plugin file from 'wpkj-fluentcart-wechat-payment.php' to 'wpkj-wechat-pay-gateway-for-fluentcart.php'<\/li>\n<li>Enhancement: Added comprehensive third-party services section documenting WeChat Pay integration<\/li>\n<li>Documentation: Updated all plugin URIs and documentation links to reflect new naming convention<\/li>\n<li>Documentation: Improved plugin metadata and header information clarity<\/li>\n<li>Maintenance: Synced GitHub repository name to 'wpkj-wechat-pay-gateway-for-fluentcart'<\/li>\n<li>Note: All historical commit records preserved; functionality remains unchanged<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<p>Release Date: October 23, 2025<\/p>\n\n<ul>\n<li>New: Added Custom Payment API for external system integration<\/li>\n<li>New: REST API endpoints for programmatically creating payment orders<\/li>\n<li>New: Support for one-time and subscription payments via API<\/li>\n<li>New: Payment status query API endpoint<\/li>\n<li>New: Comprehensive API documentation with usage examples<\/li>\n<li>Enhancement: Customizable permission checks for API access<\/li>\n<li>Enhancement: Detailed logging for custom payment operations<\/li>\n<li>Documentation: Added CUSTOM_PAYMENT_USAGE.md with complete API guide<\/li>\n<li>Documentation: All documentation moved to docs\/ directory for better organization<\/li>\n<li>Documentation: README.md retained in root for GitHub, readme.txt for WordPress.org<\/li>\n<li>Security: All exception messages properly escaped with phpcs annotations<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<p>Release Date: October 23, 2025<\/p>\n\n<ul>\n<li>Added: TransactionHelper utility class for idempotency protection<\/li>\n<li>Added: WechatSubscriptions module for subscription lifecycle management<\/li>\n<li>Added: Professional subscription status synchronization from WeChat<\/li>\n<li>Added: Subscription reactivation support<\/li>\n<li>Security: Enhanced duplicate refund prevention mechanism in automatic refund feature<\/li>\n<li>Security: Now checks ALL existing refunds instead of just first one to prevent duplicates<\/li>\n<li>Security: Added comprehensive logging for refund duplicate prevention<\/li>\n<li>Security: Validates original transaction UUID match before blocking duplicate refunds<\/li>\n<li>Refactoring: Migrated to FluentCart standard Refund service for all refund operations<\/li>\n<li>Refactoring: Added WechatGateway processRefund() method using FluentCart standard interface<\/li>\n<li>Refactoring: Simplified RefundProcessor to use FluentCart's transaction\/order management (~70% code reduction)<\/li>\n<li>Improved: FluentCart now handles all transaction creation, order updates, and event triggering<\/li>\n<li>Improved: Better separation of concerns - Gateway handles payment API, FluentCart handles business logic<\/li>\n<li>Improved: Code maintainability with DRY principle - single source of truth for refund logic<\/li>\n<li>Improved: Architecture now consistent with Alipay payment plugin<\/li>\n<li>Improved: Separation of payment processing and subscription management<\/li>\n<li>Improved: Exception message security with esc_html() escaping<\/li>\n<li>Improved: Code architecture following single responsibility principle<\/li>\n<li>Improved: Automatic refund now includes detailed security check logs<\/li>\n<li>Fixed: WordPress coding standards compliance<\/li>\n<li>Note: Duplicate refund prevention protects against concurrent order cancellation operations<\/li>\n<li>Fixed: Translator comments for all placeholder strings<\/li>\n<li>Security: Enhanced XSS protection for all output<\/li>\n<li>Performance: Optimized transaction lookup and duplicate detection<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>Release Date: October 22, 2025<\/p>\n\n<ul>\n<li>Initial release<\/li>\n<li>Added: Multi-platform payment support (Native, H5, JSAPI)<\/li>\n<li>Added: Automatic client detection<\/li>\n<li>Added: Subscription payment support with manual renewal<\/li>\n<li>Added: Automatic and manual refund functionality<\/li>\n<li>Added: Configurable subscription cancellation sync with orders<\/li>\n<li>Added: Dual signature support (MD5 and HMAC-SHA256)<\/li>\n<li>Added: SSL certificate integration for secure refunds<\/li>\n<li>Added: Payment status polling as webhook fallback<\/li>\n<li>Added: Comprehensive webhook handling<\/li>\n<li>Added: Full internationalization (i18n) support<\/li>\n<li>Added: Complete translation files (POT + Chinese)<\/li>\n<li>Added: Detailed logging and debugging capabilities<\/li>\n<li>Added: Clean PSR-4 autoloading architecture<\/li>\n<li>Added: Extensive hooks and filters for customization<\/li>\n<li>Tested: WordPress 6.8.3 compatibility<\/li>\n<li>Tested: FluentCart 1.2.0+ compatibility<\/li>\n<li>Tested: PHP 8.2+ compatibility<\/li>\n<\/ul>","raw_excerpt":"Professional WeChat Pay payment gateway for FluentCart with multi-platform support, subscriptions, and automatic refunds.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/262248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=262248"}],"author":[{"embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cmhello"}],"wp:attachment":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=262248"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=262248"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=262248"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=262248"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=262248"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=262248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}