WooCommerce 官方建议所有仍在使用 PayPal Standard 的用户切换到推荐的 PayPal Payments 插件,它具备完整支付功能,支持信用卡、PayPal 快速结账、订阅、分期付款等。
使用条件
拥有 PayPal 商业账户
登录 paypal.com,注册商业账户或升级现有个人账户
注册 PayPal Standard 商业账户
设置与配置
进入后台:WooCommerce > 设置 > 支付
启用 PayPal
点击“设置”进入 PayPal Standard 页面
基础设置
PayPal 邮箱字段必须填写与你商业账户一致的主邮箱地址沙盒模式:用于开发测试,不会产生真实支付(需使用 PayPal 沙盒账户)
日志调试功能:用于排查问题,需手动创建 wc-logs 文件夹并赋予写权限,路径:WooCommerce > 系统状态 > 日志
IPN 邮件通知(可选):PayPal 在付款、退款、拒付或取消时发送通知
接收邮箱:填写 PayPal 主邮箱地址
身份令牌(PDT):可选,在 IPN 异常时用于验证支付数据
发票前缀:适用于多店铺识别订单(例如:STORE1-)
配送信息设置:是否发送配送信息至 PayPal,用于创建运单
地址覆盖选项:PayPal 会对地址做校验,建议保持关闭
若未启用配送信息发送,PayPal 卖家保护可能无效
Payment Action(付款动作)
Capture:自动收款
Authorize:仅授权,在订单状态为处理中或已完成时自动收款(WooCommerce 3.0 起无需手动操作)
页面样式与图片设置(可选)
页面样式名称:PayPal 中设定的自定义页面样式名
图片链接:PayPal 结账页中展示的 150×50 图片
API 凭证
需填写以下三项:
API 用户名
API 密码
API 签名
获取方式:
登录 PayPal
齿轮图标 > 账户设置 > API 访问权限
选择 NVP/SOAP API 集成(经典)> 管理 API 凭证
申请签名,并复制所需内容填入 WooCommerce 设置中
PayPal 后台补充设置
IPN(即时支付通知)地址
登录 PayPal
设置 > 通知 > 即时支付通知
点击“选择 IPN 设置”,填写如下地址(替换 example.com): https://example.com/?wc-api=WC_Gateway_Paypal
勾选接收消息并保存
多个站点可共用一个 PayPal 账户,每笔交易传入 notify_url 参数即可使用不同 IPN 地址。
自动跳转(Auto Return)
登录 PayPal
设置 > 网站支付 > 网站偏好设置
启用自动跳转,并填写如下地址: https://example.com/checkout/order-received/
附加参数 ?utm_nooverride=1 可用于追踪原始来源信息
使用 PayPal 沙盒进行测试
在配置和完善网站的结账和支付流程时,你可以选择使用 PayPal 沙盒详细信息,以便随心所欲地进行交易。为此
注册一个PayPal 开发者账户。
注册并登录后,从菜单中选择测试工具»沙盒帐户。
点击创建帐户(2)。
指定帐户类型和国家/地区以满足你的要求。
注意:国家/地区将决定你的沙盒帐户的货币,该货币应与你网站的货币相匹配,以避免订单被设置为待付款。
创建后,你将看到该帐户现在在帐户名称列中列出了一个电子邮件地址,你可以在网站的 PayPal 标准设置页面上使用该电子邮件地址进行电子邮件 ID设置。
接下来,点击管理账户列中新添加账户旁边的点菜单,选择查看/编辑账户(3)即可显示沙盒账户的详细信息。在打开的页面的NVP/SOAP 沙盒 API 凭据部分下,你会注意到你的沙盒帐户的 API 凭据与你网站设置页面底部的设置相同。
注意:沙盒电子邮件 ID应用于你网站上的PayPal 电子邮件和接收方电子邮件字段,可在WooCommerce > 设置 > 付款 > PayPal下找到。
如果使用现有的 PayPal 电子邮件地址,订单状态将显示“暂停”,订单备注将显示“待付款(单方面)。订单状态已从“待付款”更改为“暂停”。
在这两个字段中输入你的沙盒电子邮件 ID
在API Credentials下,复制 API 凭证信息(用户名、密码和签名)。
你需要将它们粘贴到 WooCommerce 上 PayPal 标准设置的相应字段中。
在 PayPal Sandbox 上查看测试交易
要查看启用了 PayPal 沙盒模式的 WooCommerce 商店收到的交易,你需要登录 PayPal 沙盒网站:https://www.sandbox.paypal.com/
登录后,你可以单击“活动”选项卡来查看 WooCommerce 商店的所有交易:
常见问题解答
SSL 是否必要?
虽然支付在 PayPal 网站完成,但建议使用 SSL,能提升网站信任度并改善搜索排名
是否收费?
WooCommerce 免费提供 PayPal Standard 插件。PayPal 本身会根据账户和交易量收取手续费
为什么订单为 Pending?
顾客在跳转至 PayPal 后未完成支付,订单会保持为 Pending 状态,系统将在设定时间后取消订单
支付已完成但订单未更新?
通常是 IPN 回调失败:
检查 IPN 设置是否正确
沙盒模式是否混用正式邮箱
邮箱地址是否一致
服务器是否支持 fsockopen
防火墙是否允许 443 出站
插件(如缓存类插件)是否造成拦截
Internal Server Error?
通常由于填写了错误的邮箱地址
多站点使用同一 PayPal 账户报错?
WooCommerce 使用“发票”系统。其中有一个“阻止重复发票”的设置。如果两个网站都使用发票,那么不可避免地会出现重复的发票号码。在 PayPal 中取消选择该设置后,发票就不会出现问题了。请检查 WooCommerce PayPal 设置中每个网站的发票前缀是否不同。
或者,要禁用重复发票检查,请登录您的 PayPal 帐户并转到“个人资料”>“个人资料和设置”>“我的销售偏好”>“阻止付款”(或)“付款接收偏好”,然后将“ 阻止意外付款”设置为 “否”。
客户是否需要 PayPal 账户?
不需要。开启 PayPal 后台“可选账户”功能,客户可直接使用信用卡付款
卖家保护是否生效?
仅在使用配送地址时有效。若使用账单地址,PayPal 不支持保护
报错 “Seller only accepts payments from unencrypted payments”?
表示按钮未加密而 PayPal 设置只接受加密按钮:
登录 PayPal
设置 > 网站支付偏好
关闭“加密网站支付”选项,保存设置
报错 “This invoice has already been paid”?
订单号重复导致。添加唯一发票前缀即可解决
无法使用订阅功能?
需:
配置 API 凭证
设置 IPN 地址
启用订阅支持勾选项
IPN 故障调试
在 WooCommerce > 设置 > 产品 > 库存 中,将“保留库存时间”留空,避免订单自动取消
登录 PayPal 查看 IPN 历史:查看 IPN 状态
本地测试无效?
如使用 MAMP 等本地环境,PayPal 无法访问站点,需部署至公网服务器进行测试
检查服务器是否支持 fsockopen
fsockopen 是 WooCommerce 与 PayPal 通信的重要函数,可在 WooCommerce > 系统状态 中查看
防火墙设置
确保服务器开放 443 出站端口
启用日志调试
设置中开启调试日志,查看响应是否正常返回,如无响应,尝试关闭其他插件测试
邮箱校验
PayPal 设置的邮箱需与 IPN 返回邮箱一致,并设置为主邮箱,否则会导致订单状态不更新
报错 “Payment pending (unilateral)”?
表示收款邮箱未注册为 PayPal 账户或未完成验证。将该邮箱添加到账户并完成验证即可解决
W3 Total Cache 插件冲突?
若订单状态未自动更新,可尝试暂时禁用该缓存插件
沙盒支付币种不一致?
沙盒账户币种与站点不一致时:
PayPal 显示为未认领(Unclaimed)
WooCommerce 显示为 On Hold
手动接受付款后状态恢复正常。建议创建币种一致的沙盒账号
无法显示下载链接?
通常由于 IPN 回调未成功。可启用 PDT 补充验证:
登录 PayPal 后台 > 网站设置
启用 PDT,获取身份令牌
粘贴到 WooCommerce > 设置 > 结账 > PayPal 的相应字段中
若仍无法解决,建议联系主机提供商确认是否有缓存、防火墙或其他安全设置阻止了 PayPal 请求。
总结
通过本文的介绍,相信你已经对 PayPal Standard 在 WooCommerce 中的完整设置流程、调试方法以及常见问题有了清晰了解。尽管 WooCommerce 已将其隐藏于新版本中,但对于仍在使用的站点来说,它依然是一个稳定的支付方式。