Npcink Pay Refund

外掛說明

Npcink Pay Refund adds a WordPress admin refund console for merchants who need to query and refund Alipay and WeChat Pay orders by payment order number.

The plugin is not a checkout gateway and does not create payments. It focuses on controlled refund operations after a payment has already been created by your existing payment flow.

Features:

  • Query Alipay and WeChat Pay orders from the WordPress admin.
  • Run full refunds for eligible paid orders.
  • Restrict refund access to administrators and selected refund operators.
  • Store refund records in a custom WordPress database table.
  • Keep payment secrets in a separate non-autoloaded option.
  • Prevent duplicate refund submissions with order-level locking.
  • Export refund records for internal review.
  • Check local payment configuration before running live refund operations.

Third-party services

This plugin connects to external payment APIs only after an administrator configures the related merchant credentials and an authorized WordPress user performs a query, refund, or configuration check.

Alipay:

  • Service: Alipay Open Platform / Alipay EasySDK.
  • Endpoint used by the SDK: openapi.alipay.com.
  • Data sent for order queries: Alipay app credentials and the payment order number entered by the operator.
  • Data sent for refunds: Alipay app credentials, payment order number, refund amount, refund request number, and the refund reason entered by the operator.
  • Service information: https://open.alipay.com/

WeChat Pay:

  • Service: WeChat Pay API v3 through the official wechatpay/wechatpay PHP SDK.
  • Endpoint used by the SDK: official WeChat Pay API v3 endpoints, including refund and transaction APIs.
  • Data sent for order queries: WeChat Pay merchant credentials and the payment order number entered by the operator.
  • Data sent for refunds: WeChat Pay merchant credentials, payment order number, refund number, full refund amount, and the refund reason entered by the operator.
  • Service information: https://pay.weixin.qq.com/

Merchant private keys and public keys are stored in the site’s WordPress database options. Keep access to administrator accounts, backups, and database exports restricted.

安裝方式

  1. Upload the plugin files to the /wp-content/plugins/npcink-pay-refund directory, or install the release zip from the WordPress plugins screen.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Open the plugin settings page from the Plugins screen.
  4. Configure Alipay, WeChat Pay, and refund operator permissions.
  5. Use Dashboard > Order Refund to query and refund eligible orders.

Use the release zip generated by composer build:zip when installing from source. A raw source archive may not include the Composer dependencies required by the payment SDKs.

常見問題集

Is this a WooCommerce payment gateway?

No. This plugin does not create checkout payment methods. It provides an admin-side refund console for existing Alipay and WeChat Pay payment orders.

Does it support partial refunds?

No. The current refund action is full refund only.

Who can run refunds?

Administrators can configure the plugin and run refunds. Administrators can also assign non-administrator refund operators from the settings page.

Where are refund records stored?

Refund records are stored in the custom database table wp_npcink_pay_refund_order, using your site’s configured table prefix.

Where are payment secrets stored?

Payment secrets are stored in a separate non-autoloaded WordPress option named npcink_pay_refund_secrets.

使用者評論

這個外掛目前沒有任何使用者評論。

參與者及開發者

以下人員參與了開源軟體〈Npcink Pay Refund〉的開發相關工作。

參與者

將〈Npcink Pay Refund〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

1.3.5

  • Removed development-only documentation and Tea SDK source specifications from the release package.

1.3.4

  • Added stable provider refund request numbers and query-first retries for ambiguous Alipay and WeChat responses.
  • Required the response returned by EasySDK’s signature-verified Alipay execution path to match the submitted order and amount before recording local success.
  • Persisted the minimum refund context before provider submission so network interruptions cannot silently release duplicate-refund protection.
  • Allowed WeChat resubmission only after the signed refund query explicitly reports RESOURCE_NOT_EXISTS, reusing the original request parameters.
  • Added an admin reconciliation notice for uncertain provider results, pending WeChat refunds, and failed local audit writes.
  • Added GitHub Actions verification across PHP 8.1 and 8.4.

1.3.3

  • Declared the official WordPress.org contributor account.
  • Removed deprecated manual translation-domain loading for the WordPress.org directory.
  • Aligned the published PHP requirement with the packaged Composer dependencies at PHP 8.1.
  • Fixed full WeChat refunds for orders that used coupons by sending the original order total.
  • Preserved a reconciliation marker and duplicate-refund lock when local audit recording fails, with a gateway-free local retry path.
  • Removed the invalid placeholder Alipay callback URL from signed requests.

1.3.2

  • Made the WeChat refund result card more compact for WordPress admin use.
  • Displayed WeChat refund channel status in Chinese instead of raw API status codes.

1.3.1

  • Added cache-busting versions for admin CSS and JavaScript assets.
  • Improved WeChat refund status polling and processing-state handling.

1.3.0

  • Raised the development baseline to WordPress 6.0 and PHP 7.4.
  • Added order-level duplicate refund locking.
  • Improved refund button state handling while requests are in progress.
  • Hardened refund record queries and uninstall table removal.
  • Switched WeChat Pay integration to the official wechatpay/wechatpay SDK.
  • Added WeChat Pay public key ID / platform certificate serial number and public key / platform certificate fields for API v3 response verification.

1.2.0

  • Removed Vite admin assets and moved settings to native WordPress admin UI.
  • Stored payment secrets in a separate non-autoloaded option.
  • Added nonce and capability checks for refund query, refund action, and export requests.
  • Improved refund record export limits and CSV injection handling.
  • Added refund table indexes and schema version upgrades.