VibeFox Authorize.Net for WooCommerce — 帮助
系统要求
WordPress:5.8 或更高版本。
WooCommerce:7.0 或更高版本,已安装并启用。未安装 WooCommerce 时,插件会在管理区域显示提示,且该付款方式不会加载。
PHP:8.0 或更高版本。
HTTPS:您的结账页面必须使用 HTTPS。Accept.js 无法在普通 HTTP 上运行。
Authorize.Net 账户:您需要 Authorize.Net 账户的 API Login ID、Transaction Key 和 Public Client Key;若使用 Webhook,还需要 Signature Key。正式账户(account.authorize.net)与沙盒账户(sandbox.authorize.net)的凭据不同。Authorize.Net 账户面向美国、加拿大、英国、欧洲、澳大利亚和新西兰的商户开放。
币种:店铺币种须为 USD、CAD、CHF、DKK、EUR、GBP、NOK、PLN、SEK、AUD 或 NZD,且您的 Authorize.Net 账户须以该币种结算。其他币种的付款方式将在结账时隐藏。
VibeFox 许可证密钥:在 vibefox.net 购买。一个密钥仅适用于一个域名。
安装
1. 在 WordPress 中进入 Plugins > Add New > Upload Plugin,选择插件 ZIP 文件,然后点击 Install Now。您也可以通过 FTP 将 wcp_authorizenet_gateway 文件夹上传到 /wp-content/plugins/。
2. 点击 Activate。
3. 打开设置:WooCommerce > Settings > Payments > Authorize.Net > Manage,或在插件页面中点击插件名称下方的 Settings。
4. 在页面顶部的许可证区块中输入您的 VibeFox 许可证密钥,然后点击 Activate。
5. 输入沙盒账户和正式账户的凭据(参见「配置」)。可选择设置 Webhook。
6. 开启 Enable/Disable,选择 Transaction type 并保存。在沙盒模式下使用测试卡号 4111 1111 1111 1111、任一未过期的有效期和任一安全码测试付款,然后取消勾选 Sandbox mode。
配置
所有设置位于同一页面:WooCommerce > Settings > Payments > Authorize.Net。若网站未使用 HTTPS(Accept.js 仅可在 HTTPS 页面上运行),或店铺币种不受支持(该付款方式将在结账时隐藏),页面字段上方会给出警告。页面只显示所选模式的凭据字段。
常规
Enable/Disable: Enable Authorize.Net 用于开启或关闭该付款方式。默认:关闭。
Title: 顾客在结账时看到的付款方式名称。默认:Credit Card。
Description: 结账时银行卡表单上方显示的文字。默认:Pay securely with your credit card via Authorize.Net。
API 凭据
在 Authorize.Net Merchant Interface 中打开 Account > Settings > Security Settings。在 API Credentials & Keys 下复制 API Login ID,并创建 Transaction Key 和 Signature Key。在 Manage Public Client Key 下复制 Public Client Key。沙盒和正式环境使用不同的凭据。
Sandbox mode: Use the Authorize.Net sandbox (test transactions, no real charges)。会切换 API 地址、Accept.js 以及下方的凭据组。默认:开启。取消勾选即可接收真实付款。
Live API Login ID 和 Sandbox API Login ID: 正式账户或沙盒账户的 API Login ID。
Live Transaction Key 和 Sandbox Transaction Key: 该账户的 Transaction Key。
Live Public Client Key 和 Sandbox Public Client Key: Accept.js 在浏览器中使用的公开密钥。
Live Signature Key 和 Sandbox Signature Key: 仅用于 Webhook。用于校验每条通知中的 X-ANET-Signature 请求头。
付款
Transaction type: 银行卡的扣款方式。授权在 30 天后失效。
Webhook(推荐)
若不设置 Webhook,被欺诈检测套件暂挂的订单,或在 Authorize.Net 后台扣款或撤销的订单,都需要手动更新。请在 Merchant Interface 中进入 Account > Settings > Business Settings > Webhooks,然后点击 Add Endpoint。使用本设置区块中显示的 URL,格式类似 https://your-site/wc-api/wc_authorizenet/。选择以下事件:
将账户的 Signature Key 填入 Live Signature Key 或 Sandbox Signature Key。没有有效签名的 Webhook 会被拒绝。对于每条通知,插件在更改订单之前还会向 Authorize.Net 查询交易的当前状态和金额,因此重复的通知不会产生任何改变。
高级
Debug log: 将 Log API requests and responses 写入 WooCommerce > Status > Logs,来源为 wcp_authorizenet_gateway。密钥、银行卡令牌和个人数据均会被屏蔽。默认:关闭。
Delete data on uninstall: Remove the settings and the Authorize.Net order meta when the plugin is deleted。默认:关闭。
结账
顾客选择付款方式(默认为 Credit Card),并在结账页面输入银行卡号、有效期(MM/YY)和安全码(CVV)。沙盒模式下,表单会提示测试卡号 4111 1111 1111 1111。下单时,Accept.js 会在浏览器中将银行卡数据换取为一次性令牌。银行卡字段没有表单名称,因此卡号和 CVV 绝不会发送到您的服务器。
插件通过 Authorize.Net API,以订单币种为订单总额扣款该令牌。账单地址、电子邮件和 IP 地址会随交易一并发送,用于地址验证和欺诈过滤。若付款获得批准,顾客会进入订单已收到页面,购物车会被清空。
若银行卡被拒绝,顾客会留在结账页面,并看到 Payment failed: 及原因,例如银行卡被拒、安全码错误或银行卡已过期。配置错误和 API 错误不会显示给顾客:顾客只会看到通用提示,详细信息会记录在订单备注和日志中。若店铺无法连接 Authorize.Net,顾客会看到 Payment error: unable to connect to the payment gateway. Please try again.
重复提交以及对同一订单的重复付款,都不会再次扣款。该付款方式支持经典结账、结账区块和 Pay for order 页面。兼容 WooCommerce 高性能订单存储(HPOS)。
插件不保存银行卡或顾客资料,不支持 WooCommerce Subscriptions 或 Pre-Orders、eCheck/ACH、Apple Pay、Google Pay、PayPal 或 3-D Secure,不支持对授权进行部分扣款,也不支持自动货币转换。
订单与退款
订单状态
Processing or Completed: 银行卡已扣款(Authorize and capture),或授权已扣款。WooCommerce 会将订单设为处理中;仅含虚拟可下载商品的订单则设为已完成。订单备注会显示金额、交易 ID、授权码、银行卡类型和卡号后四位。交易 ID 即为 Authorize.Net 的 Trans ID。
On hold: 资金仅被授权(Authorize only),或欺诈检测套件将交易暂挂审核。请在 Authorize.Net 后台批准或拒绝被暂挂的交易;设置了 Webhook 时,订单会自动更新。若 Webhook 报告的扣款金额与订单金额不符,订单也会被设为保留。
Cancelled: Webhook 报告交易在订单付款前已被拒绝、撤销或过期。若已付款的订单遇到此情况,其状态不会改变,并会添加警告备注。
扣款
对于已有授权的订单,请打开订单,在订单操作中选择 Capture payment (Authorize.Net),然后点击更新按钮。系统会扣款订单金额减去已退款金额的余额,并将订单标记为已付款。若扣款失败,错误信息会显示并添加到订单备注中。您也可以在 Authorize.Net 后台扣款;设置了 Webhook 时,订单会自动更新。
退款
打开订单,点击 Refund,输入金额,然后点击 Refund via Credit Card(按钮文字使用您的付款方式名称)。若交易尚未结算,或授权尚未扣款,全额退款会先撤销该交易。已结算的交易(通常在 24 小时后)可全额或部分退款。结算前无法部分退款:请全额退款以撤销交易,或在结算后再试。若 Authorize.Net 未接受退款,WooCommerce 会显示错误,且不会记录退款。成功的退款或撤销会添加到订单备注中。
订单的退款、扣款和 Webhook 校验使用该订单付款时所用模式的凭据,因此切换 Sandbox mode 后,另一模式的订单仍可扣款和退款。在这些订单处理完毕之前,请将该模式的凭据保留在对应字段中。
许可证密钥
本插件需要来自 vibefox.net 的 VibeFox 许可证密钥。许可证区块位于 WooCommerce > Settings > Payments > Authorize.Net 页面顶部。将密钥粘贴到 License key 中,然后点击 Activate。该区块会显示状态,例如许可证有效期截止日期以及您的域名。使用 Check now 重新检查状态,使用 Change key 输入其他密钥,使用 Remove key 将其从本站点移除。链接 Manage licenses and domains in your account 会打开您的 vibefox.net 账户。
一个密钥仅适用于一个域名。从站点移除密钥并不会释放其域名名额。请在您的 vibefox.net 账户中释放该名额。
没有有效密钥时,结账时不会向顾客显示 Authorize.Net。若仍发起付款,顾客会看到 This payment method is not available. Please choose another one.。已登录的店铺管理员仍可看到该付款方式,并标注 (unlicensed — visible to admins only),以便您在购买密钥前设置和测试插件。插件页面和 WooCommerce 页面上会显示提醒。现有订单不受影响:Webhook 仍会被处理,扣款和退款也可正常使用。
许可证到期后,插件仍可继续使用,但更新和支持需要续费。系统会在后台自动重新检查状态。
故障排除
结账时未显示 Authorize.Net:请检查许可证是否有效、Enable/Disable 是否开启,以及当前模式是否已填写 API Login ID、Transaction Key 和 Public Client Key。检查店铺币种是否受支持;若不受支持,设置页面会显示警告。
付款已完成,但订单仍为保留状态:交易类型为 Authorize only(需通过订单操作进行扣款),或 Authorize.Net 将交易暂挂审核。请在 Authorize.Net 后台批准或拒绝。若要让此类订单自动更新,请设置 Webhook:检查端点 URL 是否与设置中显示的完全一致,是否已选择上述四个事件,以及当前模式的 Signature Key 是否已填写。
Webhook 返回 webhooks are not configured:两种模式均未填写 Signature Key。
Webhook 返回 invalid signature:Signature Key 属于其他账户或模式。请重新创建或复制 Signature Key,并粘贴到对应模式的字段中。
Webhook 返回 verification failed, retry later:店铺无法从 Authorize.Net API 读取该交易。Authorize.Net 会重新投递。
银行卡表单无法加载,或显示 The secure card form (Accept.js) could not be loaded:结账页面必须使用 HTTPS,且当前模式的 Public Client Key 和 API Login ID 必须正确。
Payment error: the card could not be tokenized:Accept.js 未返回令牌。顾客应重新输入银行卡信息后再试。
顾客看到通用错误:请查看订单备注,或开启 Debug log 并在 WooCommerce > Status > Logs 中查看来源为 wcp_authorizenet_gateway 的日志。Authorize.Net 会拒绝该账户不支持的币种。
部分退款失败,因为交易尚未结算:请全额退款以撤销该交易,或在结算后(通常为 24 小时内)再试。
许可证区块显示错误:请按照区块中的提示操作。例如,若该密钥已在其他域名上使用,请在您的 vibefox.net 账户中释放一个名额,然后点击 Check now。若站点地址已更改,请点击 Check now,为新域名激活密钥。若无法连接许可证服务器,插件将继续使用最后已知的状态。
卸载
停用插件会保留所有数据。要移除插件,请先停用,然后在 Plugins 页面将其删除。本插件的许可证密钥和许可证状态始终会被移除。仅当开启了 Delete data on uninstall 时,才会移除网关设置、订单上存储的 Authorize.Net 数据以及日志。否则它们将保留,以便日后重新安装时使用。现有订单保留其付款备注和交易 ID。
Authorize.Net 是其各自所有者的商标。本插件与 Authorize.Net 无关联,也未获得 Authorize.Net 认可。
