VibeFox EveryPay for PrestaShop — 帮助
系统要求
PrestaShop:8.0 至 9.x。
PHP:8.0 或更高版本。模块拒绝在更早的 PHP 版本上安装。
EveryPay 账户:您需要商店的 API 用户名、API secret 和处理账户名称。它们位于 EveryPay Merchant Portal 的商店设置中:测试模式使用演示门户,正式付款使用正式门户。测试环境与正式环境的凭据相互独立。您还需要在两个门户中设置商店的回调 URL(参见「配置」)。
商店货币:处理账户决定收取的货币,例如 EUR3D1 以 EUR 收款。付款方式仅对该货币的购物车开放。
VibeFox 许可证密钥:在 vibefox.net 购买。一个密钥只能用于一个域名。
安装
1. 在后台进入 Modules > Module Manager,点击 Upload a module。选择模块的 ZIP 文件。
2. 上传完成后,点击 Configure;或者之后在模块列表中找到 VibeFox EveryPay Payment,然后点击 Configure。
3. 在 Configure 页面顶部的许可证区块中,将您的 VibeFox 许可证密钥输入 License key,然后点击 Activate(参见「许可证密钥」)。
4. 从演示 Merchant Portal 输入测试 API 用户名、测试 API secret 和处理账户名称。保持 Test Mode 开启。
5. 将设置页面显示的回调 URL 复制到 Merchant Portal 中您商店的 Callback notification URL 中。
6. 开启 Enable/Disable,点击 Save,然后下一笔测试订单。一切正常后,输入正式环境凭据,同样在正式门户中设置回调 URL,并关闭 Test Mode。
安装时,模块会创建订单状态 EveryPay payment on hold。PrestaShop 会为所有货币、国家和客户群组提供新的付款模块。您可以在 Payment > Preferences 中加以限制。
配置
所有设置都在模块页面中:Modules > Module Manager > VibeFox EveryPay Payment > Configure。每个部分都有自己的 Save 按钮,它会保存整个页面。在字段上方,当测试模式开启时,页面会显示 测试模式已开启:付款将发送到 EveryPay 演示环境,不会扣除真实款项。。当付款方式已启用,但当前模式缺少 API 用户名、API secret 或处理账户时(此时付款方式会在结账时隐藏),页面会发出提醒;当处理账户收取的货币与商店默认货币不同时,页面也会提醒。随凭据一起粘贴的空格和换行会在保存时被删除。
EveryPay
Enable/Disable:Enable EveryPay payment gateway 用于开启或关闭付款方式。默认:off。
Title:顾客在结账时看到的付款方式名称。它也是订单中保存的付款方式名称。默认:EveryPay。
Description:结账时显示在付款方式下方的文字。默认:Pay securely by card or bank link on the EveryPay payment page。
EveryPay 账户
API 用户名、API secret 和处理账户名称显示在 EveryPay Merchant Portal(商店设置)中:测试模式使用演示门户,正式付款使用正式门户。该部分提供两个门户的链接。
Test Mode:开启时,付款将使用测试凭据发送到 EveryPay 演示环境。不会扣除真实款项。默认:on。开启期间,顾客会在付款方式下方看到 测试模式:EveryPay 演示环境,不会扣除真实款项。
Test API Username:演示环境的 API 用户名。
Test API Secret:演示环境的 API secret。
Live API Username:正式环境的 API 用户名。
Live API Secret:正式环境的 API secret。
已保存的 secret 不会再次显示。该字段保持为空,并显示 已保存——留空即保留原值。 只有在需要更改时才输入新值。
Clear saved API secrets:勾选某个 secret 并点击 Save 即可将其删除。空字段会保留已保存的值。
Processing Account Name:EveryPay 处理账户,例如 EUR3D1。该账户决定收取的货币:付款方式仅对该货币的购物车开放。两种模式使用同一个账户名称。
付款通知(回调)
回调会告知您的商店某笔付款已完成,因此即使顾客关闭浏览器,订单也能创建。请将 Callback notification URL 中显示的 URL 复制到 EveryPay Merchant Portal 中您商店的 Callback notification URL 字段,演示和正式门户都要设置。若启用了友好 URL,则其格式类似:https://your-shop/module/wcp_everypay_payment/callback。请完全按照设置中显示的样子复制该 URL。付款请求不包含回调 URL,因此必须在门户中设置。
回调只包含付款引用。收到回调后,模块会使用创建该付款的环境的凭据向 EveryPay API 查询付款状态,并检查返回结果是否属于此购物车。对于您的商店未创建的付款,回调会被拒绝,且不会向 EveryPay 发出请求。若没有回调,订单会在顾客付款后返回商店时创建,或在 EveryPay 重试回调时创建。
高级
Debug log:将付款事件记录到模块文件夹中的 logs/wc_evp_debug.log.php。该文件无法通过网页打开。即使此选项关闭,错误和警告也始终会被记录。API secret、银行卡数据和顾客邮箱绝不会写入日志。默认:off。
Log:显示日志的大小和最新条目。点击 Clear log 可清空日志。
Uninstall:卸载模块时删除网关设置和日志。订单的 EveryPay 付款数据始终保留。默认:off。
结账
在付款步骤中,顾客选择付款方式(默认为 EveryPay)并确认。模块会以购物车货币为单位,按购物车总额创建一次性 EveryPay 付款,并附带顾客的邮箱和账单地址,然后将顾客发送到 EveryPay 付款页面。该页面的语言跟随商店语言(英语、爱沙尼亚语、俄语、拉脱维亚语、立陶宛语、芬兰语或德语;其他情况下为英语)。顾客在该页面使用您 EveryPay 账户已启用的付款方式之一付款。此时尚未创建订单。
付款后,顾客返回您的商店。只有在 EveryPay 确认付款后,订单才会被标记为已付款:模块会在返回时和回调时向 EveryPay API 查询付款状态。随后订单被创建,顾客会看到标准的订单确认页面。如果 EveryPay 仍在处理付款,或此时无法连接其 API,则会显示 Payment confirmation 页面,其中包含消息 EveryPay 正在确认您的付款。订单确认后,您将收到一封电子邮件。 以及一个 Check again 按钮;一旦 EveryPay 确认付款,回调就会创建订单。
如果付款失败,顾客会返回结账页面,并看到 您的 EveryPay 付款未成功。请重试或选择其他付款方式。 如果顾客在未付款的情况下离开了付款页面,提示为 EveryPay 付款未完成。您可以重试或选择其他付款方式。 购物车会被保留。每次新的尝试都会创建新的 EveryPay 付款;早期的尝试会被记录,因此使用旧链接完成的付款仍会被识别。
如果 EveryPay 无法启动付款,顾客会停留在结账页面,并看到简短提示,例如 EveryPay 暂时不可用。请稍后重试或选择其他付款方式。 详细信息记录在日志中。
即使商店处于维护模式,回调仍然有效,并且不受商店国家限制的影响。
模块仅接受一次性付款。不支持通过 PrestaShop 退款或扣款,不支持保存银行卡或一键付款,不支持订阅或定期付款,不支持嵌入式银行卡字段,也不支持多币种。
订单
订单状态
No order yet:顾客已被转到 EveryPay 但尚未付款,付款失败或被放弃,或 EveryPay 尚未确认付款。此时只存在购物车。
Payment accepted:EveryPay 报告付款已结算或已授权。付款会以 EveryPay 付款引用作为交易 ID 记录,备注中显示金额、货币和引用。对于已授权的付款,备注会说明资金已被预留:如果您的账户不会自动扣款,请在 EveryPay Merchant Portal 中扣款。之后付款结算时,会有一条备注说明这一点。
EveryPay payment on hold:付款需要人工审核。已付金额或货币与购物车不符(例如,付款开始后购物车被修改),订单在付款到达前已被取消,或订单现在使用了其他付款方式。备注会说明原因,并指出订单未被标记为已付款。请在 Merchant Portal 中核查付款,然后手动发货或退款。此后该付款的回调不会自动完成订单。
如果对已付款的订单又完成了第二笔付款,订单不会改变。备注会提示您在 EveryPay Merchant Portal 中退还重复付款。
EveryPay 付款区块
订单页面会显示 EveryPay payment 区块,列出该订单的每一次 EveryPay 付款尝试:日期、付款引用(测试付款会带有 Test mode 标记)、订单引用、金额、EveryPay 状态和结果。其下是该订单的 EveryPay notes,按从新到旧排列。
Check EveryPay payment status:区块中的按钮会通过 API 按从新到旧的顺序检查该订单的每一笔 EveryPay 付款,按上述方式应用结果,并添加一条备注,列出每笔付款的状态。结果会显示在该区块中。您需要编辑订单的权限;不需要访问模块页面。当回调从未到达时使用它,例如查看之后的扣款或退款。
退款
不支持通过 PrestaShop 退款。请在 EveryPay Merchant Portal 中退款,然后在 PrestaShop 中更新订单状态。当 EveryPay 报告某笔付款已退款或被拒付时,模块只会在订单中添加一条备注;订单状态不会改变。订单页面上 PrestaShop 的标准退款按钮不会通过 EveryPay 退回款项。
许可证密钥
模块需要使用在 vibefox.net 获取的 VibeFox 许可证密钥。许可证区块 License — VibeFox EveryPay Payment 是 Modules > Module Manager > VibeFox EveryPay Payment > Configure 页面中的第一个区块,位于设置上方。请将密钥粘贴到 License key 中,然后点击 Activate。之后,该区块会以掩码形式显示密钥、状态(例如许可证有效期截止日期和您的域名),以及以下按钮:Check now(重新检查状态)、Change key(输入其他密钥)和 Remove key(从本商店中移除密钥)。其下方是 Product: presta-payment-everypay 一行,以及 Manage licenses and domains in your account 链接,该链接会打开您的 vibefox.net 账户。只有拥有该模块 Configure 权限的员工才能更改密钥。该区块的文本遵循后台语言(包含英语和俄语)。
如果密钥未被接受,该区块会说明原因,例如 Key not found、This key belongs to another product、Domain limit reached 或 License expired on 加日期。在商店地址变更后,或在您的账户中释放了一个域名名额后,请点击 Check now。如果无法连接许可证服务器,模块将继续按照最后已知的状态运行。
一个密钥只能用于一个域名:主商店的域名,多店铺设置中也是如此。从商店中移除密钥并不会释放其域名名额。请在您的 vibefox.net 账户中释放该名额。
没有有效的密钥时,结账时不会向顾客显示 EveryPay。如果仍然发起了付款,顾客会看到 此付款方式不可用,请选择其他付款方式。 PrestaShop 前台无法得知您已登录后台,因此付款方式对您同样隐藏:您可以在购买密钥之前设置模块,但无法在结账时测试它。提醒会出现在 Modules > Module Manager 的 Alerts 选项卡中。现有订单不受影响:已开始的付款仍会被确认,状态检查也照常工作。
许可证到期后,模块仍会继续工作,但更新和支持需要续订。在后台工作期间会自动再次检查状态:输入密钥后的前 14 天每天一次,之后每周一次。无需 cron 任务。卸载或重置模块时,始终会删除许可证密钥和许可证状态。
故障排除
结账时不显示 EveryPay:请检查许可证是否有效、Enable/Disable 是否开启、当前模式的 API 用户名、API secret 和 Processing Account Name 是否已设置,以及购物车货币是否为处理账户的货币。在这些情况下,设置页面会显示警告。在 Payment > Preferences 中检查该模块是否允许用于购物车货币、顾客所在国家和顾客群组。
付款已完成,但未创建订单:回调没有正常工作。请检查设置中的回调 URL 是否已在您所用模式(演示或正式)的 Merchant Portal 中设为 Callback notification URL。顾客付款后返回商店时,订单也会被创建。请查看模块页面上的 Log 字段:错误始终会被记录。
回调返回 Unknown payment、Unknown payment reference 或 Payment does not belong to this order:该付款不是由此商店或此购物车创建的,或 EveryPay 的返回结果与之不符。不会做任何更改。
回调返回 Not configured:缺少创建该付款的环境的凭据,例如在删除测试凭据之后进行的测试付款。请重新输入凭据;EveryPay 会重试回调。
回调返回 Payment status unavailable、Busy, please retry 或 Order could not be created:无法连接 EveryPay API,同一时刻另一个请求正在创建订单,或订单无法创建(例如模块已被禁用)。EveryPay 会重试回调。原因记录在日志中。
顾客看到「EveryPay 暂时不可用」:EveryPay 拒绝了凭据,或无法连接。请检查当前模式的 API 用户名和 API secret。
顾客看到「此付款方式不支持该订单货币」:购物车货币与处理账户的货币不同。
顾客停留在 Payment confirmation 页面:EveryPay 尚未完成付款。订单将由回调创建,或在 EveryPay 确认付款后顾客点击 Check again 时创建。
订单处于 EveryPay payment on hold 状态:请阅读订单区块中的 EveryPay notes。金额或货币不一致,或订单在付款到达前已被取消。请在 Merchant Portal 中核查付款,然后手动发货或退款。
对于开发者:模块的 README 列出了钩子 actionWcpEverypayOneoffRequest(修改付款请求)和 actionWcpEverypayLocale(修改付款页面语言)。
卸载
进入 Modules > Module Manager,打开 VibeFox EveryPay Payment 旁边的菜单,选择 Uninstall。本模块的许可证密钥和许可证状态始终会被删除。如果设置中的 Uninstall(删除网关设置和日志)已开启,则网关设置和日志会被删除。如果关闭,所有设置都会保留,以便日后重新安装。订单的 EveryPay 付款数据和 EveryPay payment on hold 订单状态始终保留。现有订单会保留其付款备注和交易 ID。
EveryPay 是其各自所有者的商标。本模块与 EveryPay 没有关联,也未获得 EveryPay 的认可。
