PayPal标准

PayPal标准将客户从你的网站转到PayPal的安全网站,以完成订单的付款。

WooCommerce核心的PayPal标准使用“即时支付通知”(IPN),并已通过PayPal声明https以增加安全完成更新

你需要做什么?确保你的主机通过CURL/fsockopen使用TLS 1.2或更新的证书支持HTTPS链接。WooCommerce中的系统状态页面告诉你连接是否有问题。如果需要,请联系你的主机商进行修复。

要求

打开paypal.com然后注册一个PayPal商家账户或将现有的个人账户转为商家账户。免费。

设置和配置

要设置PayPal标准:

  1. 打开:WooCommerce > 设置 > 结算 > PayPal
  2. 如果你准备好使用就勾选“启用PayPal标准”
  3. 启用一个结算时显示给顾客的标题和描述
  4. 在PayPal邮箱字段输入你的邮箱地址,这是付款前最重要的配置。必须与你PayPal商家账户匹配一致。
  5. 如果你想要在商店开发期间测试结算流程,就勾选“启用PayPal沙箱”。启用沙箱后,不需付款。要使用沙箱模式,你需要通过PayPal沙箱建立一个单独沙箱账户。
  6. “调试日志”也可以打开,这在开发过程中是有用的。你可能需要先创建wc-logs文件夹并设置权限才能使其可写。这些日志可在WooCommerce > 系统状态 > 日志找到,然后从下拉列表中选择PayPal日志。

高级选项

在高级选项下,根据需要完成字段。

有两种配送方式:

注意:当选择发送配送详情选项时,PayPal验证传递的地址,如果不能识别该地址,则可以拒绝该顾客。

这些字段也可以使用:

一旦“仅授权”订单更改为“待处理”或“已完成”,资金将被自动捕获。它不再是WooCommerce 3.0的手动过程。

API Credentials 申请API凭证

有三个字段将API信息粘贴到:

想了解怎样从PayPal获得实时的API信息(不是Sandbox沙盒),点击这里。选择NVP/SOAP API integration (Classic)

配置PayPal仪表盘

大部分配置都是从WooCommerce中处理的,但是在PayPal中有几个可以设置的项目。

PayPal IPN网址

建立你的PayPal IPN网址是很好的做法。

PayPal即时付款通知(PayPal IPN)告诉你的商店付款已成功(或不成功)。要了解更多有关如何在PayPal上进行设置的信息,点击如何在PayPal账户中激活IPN。一个PayPal账户只能有一个IPN网址,因此你需要使用尚未使用IPN的账户进行其他用途。

在你的PayPal商家账户中,打开:用户信息 > 用户信息与设置 > 销售工具。点击即时付款通知设置你的URL网址。

使用以下内容,将example.com替换为你自己的URL网址:

http://example.com/?wc-api=WC_Gateway_Paypal

自动返回

你可以在PayPal账户中设置自动返回,这将带顾客进入收据页面。例如,使用下面URL网址并将example.com替换为你自己的URL网址:

example.com/checkout/order-received/

无论此设置如何,它将动态重定向到正确的收据页面。

?utm_nooverride=1添加到你的网址后面来确保交易(即转化)被记入原始流量来源,而不是PayPal。

常见问答

我需要SSL证书吗?

付款不是在你网站上的结算页面完成,而是在PayPal网站完成。添加SSL证书是可选的,但绝对鼓励。SSL正在成为搜索结果的排名因素;它也保护你网站传进传出的信息安全。

我有待处理的订单,但没有收到付款

如果客户在PayPal(而不是你的WooCommerce商店)中放弃订单,则该订单显示为“待处理”(未支付)。没有必要采取行动。

达到保留库存时间后,订单会自动取消。

当客户正在结算时,什么数据被发送到PayPal了?

你商店的PayPal网关发送单行项目到PayPal(产品名称、价格和数量),除非:

这是为了防止四舍五入错误,并确保收取正确的总计。当订单项未发送时,项目将分组并命名为“订单#x”。

我的运费没传送到PayPal

WooCommerce 2.6+通过PayPal以“真实”配送行项目发送运费。如果你的PayPal账户在其中设置了配送规则,则会覆盖并移除WooCommerce发送的费用。

要解决这个问题,你必须删除PayPal账户上的所有配送规则设置或使用以下方法禁用它们:

https://www.paypal-community.com/t5/How-to-use-PayPal-Archive/Turning-off-shipping-calculator/td-p/40601

在这种情况下,PayPal IPN失败。检查你的服务器并查看下面的“调试IPN问题”

为什么我收到一个内部服务器错误?

如果在点击购买按钮后看到以下错误消息,您在PayPal设置中输入的电子邮件地址不正确:

在多个网站上使用相同的PayPal账户

WooCommerce使用“发票”系统。有一个设置“阻止重复发票”。两个网站使用发票,不可避免会有重复的发票号码。通过在PayPal中取消该设置,发票问题就解决了。请检查你的WooCommerce PayPal设置中的发票前缀对于每个网站都是不同的。

顾客是否需要PayPal账户?

PayPal有一个选项,允许顾客在不创建账户的情况下结算。该设置被称为“PayPal账户可选”,可以在你的PayPal账户中用户信息页面找到。打开:用户信息 > 用户信息与设置 > 销售工具 > 网站习惯设定,然后开启“PayPal账户可选”。想要了解更多,看看:PayPal账户可选

“PayPal商家保护”是否有效?

如果你使用配送地址,有效。如果你使用账单地址(默认),无效。PayPal API不能识别多个地址。

消息:商家只接受未加密支付的付款

该信息来自PayPal

当您的PayPal帐户配置文件设置为仅接受来自“加密”按钮的付款,但您的项目按钮代码“未”加密时,会显示此错误。这将中断付款过程并显示错误消息。

要关闭此选项:

  1. 登录你的PayPal账户
  2. 点击右上角用户信息 > 用户信息与设置
  3. 点击左侧销售工具 > 网站习惯设定
  4. 加密的网站付款这里,选择“关闭”
  5. 点击底部的保存

消息:此发票已支付

如果你正在运营多个商店或使用PayPal账户做了其它事,WooCommerce订单号可能不是唯一的。

为避免此问题,请打开:WooCommerce > 设置 > 结算 > PayPal,并为你的商店设置一个唯一的“前缀”,例如:MYSTORE

调试IPN问题

如果IPN没有更新你的订单,可以采取以下步骤。在处理这些问题时,你可能希望防止“待处理”(未支付)订单自动取消,以便你有机会手动确认无IPN的付款。要执行此操作,打开:WooCommerce > 设置 > 产品 > 库存,并将“保持库存(分钟)”选项设置为无(将该字段留空)。

另外注意,你可以在这里查看IPN历史页面了解有关IPN可用性的更多信息:https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history

你在本地测试吗?

如果你在本地测试,以MAMP为例,PayPal无法与您本地的商店进行通话。这是正常的-当你上传到服务器之后才能实现与PayPal正常支付。

检查你的服务器是否支持fsockopen

网关必须与PayPal通话以检查通知的有效性-为此,它需要fsockopen支持。使用的函数是http://codex.wordpress.org/Function_API/wp_remote_post

要检查服务器是否支持此功能,打开:WooCommerce > 系统状态查看结果。

检查你的服务器是否有防火墙

网关通过https URL与PayPal通话。您的防火墙需要将出站端口443打开。

启用日志记录

通过设置启用日志后,检查是否收到响应。如果没有,那么问题可能是由于你的WordPress安装或插件冲突。关闭其他插件。

检查电子邮件地址

检查PayPal网关设置中的电子邮件地址是否与IPN传回的电子邮件地址相匹配。将你的主要电子邮件地址用于你的PayPal账户。它们需要匹配。

否则将导致IPN回应被拒绝。这可能导致订单保持暂停或未完成。

检查冲突

如果订单状态在订单完成时没有更改,检查是否与W3 Total Cache有冲突

PayPal沙箱模式中的货币

当PayPal处于沙箱模式时,如果使用的是沙箱货币以外的货币,它将自动将付款设置为“待处理”。确保你在PayPal沙箱中设置的货币与你的WooCommerce商店中的货币相同。

为什么顾客在付款后被重定向到我的网站时看不到下载产品的链接?

这可能是IPN无法正常工作的现象。可能的解决方案是启用“付款数据传输”(PDT)。在你的PayPal账户设置中,尝试设置以下内容:

保存设置后,返回“网站设置”页面,找到“付款数据传输”的身份令牌:

复制“付款数据传输”的身份令牌后,你可以将其粘贴到WooCommerce > 设置 > 结算 > PayPal字段中:

还是不工作?

联系你购买服务器主机的公司。有些主机,如GoDaddy,我们已经知道IPN有问题,不幸的是我们无法控制。

或者,要禁用重复发票检查,请登录到你的PayPal账户,然后转到用户信息 > 用户信息与设置 > 销售工具 > 收款和管理我的风险 > 拒绝付款然后设置“拒绝意外付款”为“否”

翻译不准确?

到QQ群里吐槽:

WooCommerce + WordPress开发