VibeFox Autopay for PrestaShop — 帮助
系统要求
PrestaShop:8.0 至 9.x。
PHP:8.0 或更高版本。模块拒绝在更低版本的 PHP 上安装。
Autopay 服务:您需要 Autopay 服务的 Service ID 和 Shared key(哈希密钥)。它们显示在 Autopay 商户后台:正式环境为 portal.autopay.eu,测试环境为 testportal.autopay.eu。测试服务有独立的 Service ID 和 Shared key;请联系 Autopay 为您开通。服务的哈希函数必须为 SHA-256。
币种:购物车币种必须为 PLN、EUR、GBP、USD 或 CZK,并被您的 Autopay 服务接受。
店铺可访问:Autopay 必须能够向您的店铺发送通知,因此店铺必须可从互联网访问,不能启用 HTTP 基本认证,也不能有阻止 POST 请求的防火墙。店铺的维护模式和国家限制不会阻止通知。
VibeFox 许可证密钥:在 vibefox.net 购买。一个密钥适用于一个域名。
安装
1. 在后台进入 Modules > Module Manager,点击 Upload a module。选择模块的 ZIP 文件。
2. 上传完成后,点击 Configure;或者稍后在模块列表中找到 VibeFox Autopay Payment 并点击 Configure。
3. 在 Configure 页面顶部的许可证区块中,将 VibeFox 许可证密钥输入 License key 字段,然后点击 Activate(参见许可证密钥)。
4. 输入 Service ID 和 Shared key(测试和正式),并选择您服务的币种。
5. 在 Autopay 后台为您的服务设置 ITN URL、返回 URL 和 SHA-256 哈希函数(参见配置)。
6. 开启 Enable/Disable 并点击 Save。在测试模式下下一笔测试订单,然后关闭 Test mode 以接受真实付款。
安装时,模块会创建订单状态 Autopay payment on hold。PrestaShop 会为所有币种、国家和客户群组启用新的付款模块。您可以在 Payment > Preferences 中进行限制。
配置
所有设置都位于模块页面:Modules > Module Manager > VibeFox Autopay Payment > Configure。每个部分都有自己的 Save 按钮,它会保存整个页面。在字段上方,如果所选环境的 Service ID 或 Shared key 为空,或者店铺的默认币种未在 Currencies 中选中,页面会提示您。在这两种情况下,付款方式都会在结账时隐藏(对于未选中的币种)。
Autopay
Enable/Disable:Enable Autopay payment gateway 用于开启或关闭该付款方式。默认:关闭。
Title:顾客在结账时看到的付款方式名称。订单中保存的付款方式名称也是它。默认:Autopay。必填。
Description:结账时显示在付款方式下方的文字。默认:Pay online by bank transfer, BLIK or card. You will be redirected to the secure Autopay payment page.
Autopay 服务
Service ID 和 Shared key 显示在 Autopay 商户后台(portal.autopay.eu 或 testportal.autopay.eu,已在本部分提供链接)。
Test mode:使用 Autopay 测试环境(testpay.autopay.eu)和下方的测试凭据。默认:开启。关闭后,将使用正式凭据在 pay.autopay.eu 接受真实付款。
Service ID (production):来自 portal.autopay.eu 的数字服务标识。
Shared key (production):正式服务的哈希密钥。请妥善保密。
Service ID (test):来自 testportal.autopay.eu 的数字服务标识。
Shared key (test):测试服务的哈希密钥。
保存时,如果 Service ID 包含字母、数字、连字符或下划线以外的字符,将报错拒绝,且不会保存任何内容。已保存的 Shared key 不会再次显示。该字段保持为空,并显示 Saved — leave empty to keep it. 只有在需要更改时才输入新值。
Clear saved keys:勾选某个密钥并点击 Save 即可删除。空字段将保留已保存的值。
Currencies:您的 Autopay 服务所接受的币种:PLN、EUR、GBP、USD、CZK。Autopay 通常为每种币种单独开通一个服务。只有在此处选中购物车的币种时,才会提供该付款方式。默认:PLN。
付款通知(ITN)和返回地址
请在 Autopay 后台为您的服务(正式和测试)填写这些地址。确切地址显示在本部分的 Addresses 字段中。使用友好 URL 时,地址形如下面所示,可能带有语言代码,例如 /en/:
请完全按照设置页面显示的地址进行复制。如果没有 ITN URL,订单将永远不会被创建,因为 PrestaShop 只有在 Autopay 确认付款后才会创建订单。每个 ITN 都使用通知中所指服务的 Shared key 生成的 SHA-256 哈希进行验证。哈希无效或 Service ID 未知的通知会被拒绝。只有当某笔付款是通过同一 Autopay 服务发起时,通知才会应用于购物车,因此测试通知绝不会确认正式付款。在您切换 Test mode 之前发起的付款,其通知只要两套凭据仍保存着,就会继续使用正确的密钥进行验证。
模块在 ITN 中处理以下付款状态:
高级
Logging:将付款事件写入模块文件夹中的 logs/wc_ap_debug.log.php。该文件无法通过网页打开。密钥和顾客数据绝不会被记录。默认:关闭。关闭时不会写入任何内容,包括错误。
Log:显示日志的大小和最新条目。点击 Clear log 可清空日志。
结账
在付款步骤,顾客选择付款方式(默认为 Autopay)并查看其说明后确认。下一页会显示 Thank you. You are being redirected to Autopay to complete the payment. Your order is created as soon as Autopay confirms it. 并将顾客转到 Autopay 付款页面。如果顾客通过浏览器的后退按钮返回,页面会显示 Pay with Autopay 按钮,而不是再次自动跳转。此时尚未创建订单。
模块会传递购物车以购物车币种计的总额、购物车编号(作为订单参考)、说明(Cart 及编号)以及顾客的电子邮件地址。在 Autopay 页面上,顾客选择付款方式并完成付款。
只有在 Autopay 通过签名的 ITN 确认付款,并且金额和币种与购物车一致后,订单才会被标记为已付款。随后订单被创建,顾客会收到 PrestaShop 标准订单邮件。付款后,顾客返回您的店铺。返回地址已签名,但绝不会创建或更改订单。如果订单已存在,顾客会看到标准订单确认页面。如果 ITN 尚未到达,Payment confirmation 页面会显示 Thank you. Your payment is being confirmed by Autopay — your order will be created as soon as Autopay confirms it, and you will receive an e-mail. 以及 Check again 和 Back to checkout 按钮。
如果 Autopay 报告付款失败,顾客会返回结账页面,并显示 The payment was not completed. You can try again or choose another payment method. 购物车会被保留。如果无法发起付款,顾客会停留在结账页面,并看到一条简短提示,例如 Autopay payments are not configured. Please choose another payment method or contact the store.,或提示 Autopay 无法接受该币种的付款。
模块不提供从 PrestaShop 发起的退款,不支持订阅或定期付款,不保存银行卡,结账页面上没有 BLIK 验证码或银行卡表单,结账页面上也不能选择银行或付款渠道,并且每个环境只使用一个 Service ID。
订单
订单状态
No order yet:顾客已被转到 Autopay 但尚未付款,付款失败,或 Autopay 尚未确认付款。此时只存在购物车。
Payment accepted:Autopay 已确认付款,且金额和币种一致。付款会以 Autopay 交易 ID(remoteID)作为交易 ID 记录,备注中显示金额、Autopay 交易和付款日期。
Autopay payment on hold:Autopay 报告的金额或币种与购物车总额不一致(例如,付款发起后购物车被修改)。订单不会被标记为已付款。请在 Autopay 后台检查该交易,并手动完成或退款。之后,该订单收到正确的通知时会被标记为已付款。当一个已取消订单收到付款时,也会使用同一状态:付款会被记录,备注会提醒您检查库存并处理订单,或对付款进行退款。
已付款订单不会因之后的失败通知而被修改。如果 Autopay 报告某个已付款订单又有一笔成功付款,备注会提示顾客可能重复付款。对于通过其他 Autopay 服务发起的付款的通知,将不会被应用,备注会对此加以说明。备注仅对员工可见,位于订单页面的 Autopay payment 区块中。
Autopay payment 区块
订单页面会显示 Autopay payment 区块,其中包括 Autopay OrderID、Service ID 和环境、金额和币种、付款状态、Autopay 交易 ID、测试付款的 Test mode 标记,以及该订单的 Autopay notes。该区块为只读。
退款
不支持通过 Autopay 退款。请在 Autopay 后台退款,然后使用 PrestaShop 的标准订单工具进行记录。
许可证密钥
本模块使用来自 vibefox.net 的 VibeFox 许可证密钥。许可证区块 License — VibeFox Autopay Payment 位于 Modules > Module Manager > VibeFox Autopay Payment > Configure 页面的最上方,在设置上方。请将密钥粘贴到 License key 中,然后点击 Activate。之后,该区块会以隐藏方式显示密钥,并显示状态(例如许可证的有效截止日期和您的域名),以及按钮 Check now(重新检查状态)、Change key(输入其他密钥)和 Remove key(从此店铺中移除密钥)。其下方是 Product: presta-payment-autopay 一行,以及打开 vibefox.net 账户的链接 Manage licenses and domains in your account。只有拥有本模块 Configure 权限的员工才能更改密钥。该区块的文字遵循后台语言(包括英文和俄文)。
如果密钥未被接受,区块会说明原因,例如 Key not found、This key belongs to another product、Domain limit reached,或带日期的 License expired on。店铺地址更改后,或在账户中释放域名名额后,请点击 Check now。如果无法连接许可证服务器,模块将继续以最后已知的状态运行。
一个密钥只能用于一个域名:主店铺的域名,多店铺设置中同样适用。从店铺中移除密钥不会释放其域名名额。请在您的 vibefox.net 账户中释放该名额。
没有有效密钥时,顾客在结账时将看不到 Autopay。即使如此仍发起了付款,顾客会看到 This payment method is not available. Please choose another one. PrestaShop 店铺前台无法得知您已登录后台,因此该付款方式对您也是隐藏的:您可以在购买密钥之前设置模块,但无法在结账时进行测试。Modules > Module Manager 的 Alerts 选项卡中会出现提醒。现有订单不受影响:已发起的付款仍会被确认。
许可证到期后,模块继续运行,但更新和支持需要续期。在后台工作时,系统会自动重新检查状态:输入密钥后的前 14 天每天一次,之后每周一次。无需 cron 任务。卸载或重置模块总会删除许可证密钥和许可证状态。
故障排除
结账时未显示 Autopay:请检查许可证是否有效、Enable/Disable 是否开启、所选环境是否已填写 Service ID 和 Shared key,以及购物车币种是否已在 Currencies 中选中。如果缺少其中任何一项,设置页面会显示警告。在 Payment > Preferences 中,请检查该模块是否允许用于购物车币种、顾客所在国家和顾客所属群组。
付款已完成,但未创建订单:Autopay 没有送达 ITN,或店铺拒绝了它。请检查设置中显示的 ITN URL 是否已在 Autopay 后台为该服务(正式或测试)设置,哈希函数是否为 SHA-256,以及模块中的 Shared key 是否与该服务匹配。请检查店铺是否可从互联网访问。开启 Logging 并查看模块页面上的 Log 字段。
日志显示 ITN rejected: invalid hash:Shared key 与服务不匹配,或服务的哈希函数不是 SHA-256。
日志显示 Service ID 未配置:通知来自某个服务,而该服务的 Service ID 未在模块中填写,或其 Shared key 为空。
日志显示 could not lock the cart, Autopay will retry:该购物车在同一时刻正被另一条通知处理。店铺会作出响应,使 Autopay 重新发送通知。如果订单因模块已停用等原因无法创建,也会出现同样的情况。
订单为 Autopay payment on hold 并附有金额不符备注:Autopay 报告的金额或币种与购物车总额不一致。请在 Autopay 后台检查该交易,并手动完成或退款该订单。
备注显示通知未被应用(NOT applied):该订单的付款不是通过此 Autopay 服务发起的,例如用测试通知对应正式订单。请在 Autopay 后台检查该交易。
付款后顾客落在首页:无法验证返回地址,例如 Service ID 未在模块中填写。订单不受影响,它以 ITN 为准。
顾客看到 This payment method is not available.:此购物车不提供该付款方式(已禁用、凭据缺失、未选中币种,或在 Payment > Preferences 中不允许)。
卸载
进入 Modules > Module Manager,打开 VibeFox Autopay Payment 旁边的菜单,然后选择 Uninstall。本模块的许可证密钥和许可证状态始终会被删除。模块设置(包括密钥)和日志将被删除。模块没有保留设置的选项。Autopay 付款记录和订单状态 Autopay payment on hold 始终保留。现有订单会保留其付款备注和交易 ID。
Autopay 是其各自所有者的商标。本模块与 Autopay 无关联,也未获得 Autopay 的认可。
