如何在WooCommerce商店中设置PayPal标准支付?
在外贸建站中根据收款方式的不同,可以将其分为两种类型:一种是不需要客户在线付款的(主要面向B2B外贸网站,以获取询盘为目标),另一种是需要客户在线付款的(主要面向B2C外贸网站,常见于零售和批发业务)。
作为最受欢迎的WordPress插件之一,WooCommerce提供了一个强大的解决方案。它支持接受来自多个第三方支付系统的付款,包括Stripe、信用卡、直接银行转账和PayPal等。在所有的付款处理选项中,PayPal是买家最简单方便的方式,因为它提供无缝的退款和买家保护。
本教程是WooCommerce系列教程之一,重点介绍了B2C外贸网站常用的用户付款方式:PayPal标准付款。当用户下单后,他们将被重定向到PayPal网站完成订单的付款过程。
需要注意的是,如果你的电商平台面向的是国内用户,就不能使用PayPal作为付款方式。此外,在国内,PayPal账户之间也不能直接进行转账,因此PayPal收款仅适用于外贸网站。
注册PayPal账户
请先前往PayPal注册账户,如果你是一家企业,请注册PayPal企业账户,如果你是个人,就注册个人账户。不论是企业账户还是个人账户,都能够在店铺里收款。
PayPal个人账户和企业账户有何区别呢?下面是官方的说明。
所有PayPal账户均允许您付款和收款。
- 个人账户:推荐给在线购物和付款的个人;适用于希望在线收款和购物的兼职卖家或非商家用户。作为个人账户持有者,您的个人账户名称应与银行账户名称一致。
- 企业账户:适用于以公司/团体名义运营的商家。此类账户提供了附加功能,如允许向最多200名员工授予您账户的有限访问权限,以及允许使用客服邮箱地址别名来转发客户问题,从而使其更快得到处理。作为企业账户持有者,您需要添加公司名称的银行账户。
设置PayPal付款
Woocommerce 5.5版本之后的PayPal设置教程
安装并启用插件WooCommerce PayPal Payments在woocommerce – 设置 – 付款 中找到PayPal并点击设置进入
然后,点击下方图示中的"Connect to PayPal"按钮。请注意,勾选"Sandbox"表示启用沙盒模式,这是用于连接测试用的PayPal账号,它与正式账号的连接是不能同时进行的。例如,如果你已经绑定了正式账号,但勾选了"Sandbox",那么你的正式账号绑定的信息将被隐藏,系统将切换到沙盒模式,而沙盒模式中绑定的账号不应该是你的正式账号。你需要前往PayPal开发者平台开通一个测试用的账号来进行绑定。接下来,我们先讲解如何绑定正式账号。
点击"Connect to PayPal"按钮后,会弹出一个窗口,要求你输入PayPal账户信息。请注意,如果你的浏览器语言设置为英文,可能在下方的国家选项中找不到中国。但是不用担心,你可以不选择国家,或者保持默认的美国选项,然后点击"Next"继续。稍后的步骤中,将会出现中国作为选项。
接下来就是让你输入账号密码,填完点击登录
待你登录后,又弹出了账号和国家地区,这下默认国家地区就是中国了,继续点击下一步
接下来,界面上显示账号是个人用还是公司用,你是个人的号,就选个人。然后下拉界面,底部有个下一步按钮,点它继续。
最后就是问你是否同意并连接到woocommerce,选同意即可。
完成后,你将看到如下图所示的成功提示信息。如果因为各种原因中断了绑定流程,不要放弃,可以尝试重新开始。我之前曾经绑定过一个站点,今天再次绑定时出现了一个提示(我没来得及看清楚是什么),导致不得不中断了绑定流程。但我重新开始,最终成功完成了绑定。所以,如果遇到问题,不要放弃,可以重新尝试一遍。
完成绑定后,你将返回到WooCommerce的PayPal付款设置页面,界面如下图所示。在这里,你会看到已经填入了与绑定PayPal所需的"Live"字段相关的信息,请不要修改它们。如果你点击了图中的"Disconnect"按钮,很抱歉,绑定信息将会被立即删除,而且无法恢复,没有任何警示信息(不清楚WooCommerce未来是否会改进这个交互)。此时,你只能刷新页面并重新进行绑定。
关于上图中的沙盒测试(sandbox),你可以将其理解为使用测试账号进行付款和收款的测试。在国内,无法直接进行真实的付款和收款操作,因此可以使用沙盒测试账号来模拟这些操作。沙盒测试账号是由PayPal生成的,你可以参考下文中的沙盒账号创建教程,创建一个business类型的账号,并将生成的账号和密码用于连接沙盒账户时的设置。连接沙盒账号的过程与连接正式账号的流程是相同的,这里就不再重复说明。关于沙盒账号的测试流程,请参考下文中的沙盒测试章节。
Woocommerce 5.5版本以前的PayPal设置教程
前往: WooCommerce > Settings > Payments.在列表中找到paypal standard 并开启,然后点击set up进入设置
接下来最重要的是输入你的PayPal账户邮箱。
高级选项/ Advanced Options
高级选项并非必填的,请参考下文、了解每一项的作用后再按需填写。
PayPal sandbox(沙盒):启用沙盒模式后,你可以测试店铺的收款功能是否正常,同时并不需要付真正的钱。如果你需要启用沙盒模式,你需要在Paypal开发者网站创建沙盒账户。
Debug log/调试日志功能打开后,对于网站开发是有用的(如果你不懂开发,那就不用打开了),它能记录付款过程中发生的事项。您需要首先创建一个WC-logs文件夹,并设置文件夹的权限是可写入的。调试日志位于WooCommerce>System Status>Logs,然后从下拉列表中选择PayPal日志。
如果勾选“Enable IPN Email Notifications/启用IPN电子邮件通知”,在您收到付款、退款或取消付款时,PayPal发送通知给你。
PayPal对即时付款通知(IPN)的解释是:使用该功能可以将付款相关消息(及其他交易活动)从PayPal直接发送到您的网站后端系统,您可以查看28天内的消息。您也可以:
- 重新发送您的网站后端系统未收到的消息
- 暂停接收消息(在对后端系统进行维护时使用)
生成的消息存储在PayPal上,直到您再次开始接收消息为止。
请在下列情况下使用即时付款通知功能:
- 您的服务提供商、购物车提供商或网站开发者要求您使用
- 您的后端系统需要使用即时付款通知消息来自动处理业务流程,例如创建货运通知、向会计应用程序提供输入信息等。
Receiver Mail/收件人邮箱:如果你接收邮件通知的邮箱与paypal账户邮箱不同,那就在此处填入。那如果在做沙盒测试时,此处与上文的Paypal邮箱保持一致。
PayPal Identity Token/身份令牌:不是必填的,仅当您在PayPal帐户上注册了数据传输选项时才需要,如果您有IPN方面的问题,它可以用于验证付款。下文有介绍如何获取身份令牌。
Invoice Prefix/发票前缀(如果您有多个商店,则非常有用,用于区分不同商店)。默认的WC表示WooCommerce的首字母缩写。
Send shipping details to PayPal/将订单的收货地址信息发送到PayPal:您可以选择让WooCommerce将客户的收货地址信息发送到PayPal,以创建发货标签而不是帐单。当选中这个选项时,PayPal会验证收货地址,如果不能完全识别该地址,则PayPal可以拒绝这个客户。如果未选中这个选项,则PayPal提供的卖家保护可能会无效,因为PayPal需要买家的收货地址才能保护卖家。
Address override option/地址覆盖选项:由PayPal验证地址,因此这个设置可能会导致错误。我们建议将其保持禁用状态,但它在防止地址信息被更改时非常有用。
Payment Action/付款操作:你可以选择是立即获得客户的付款(Capture),还是获得资金授权(Authorize),通常保持默认选项即可。
Image URL/图片链接:你可以在此处填入你的网站logo的url(尺寸是150*50px),以便它展示在paypal截止页面左上角。
API 凭据
API凭据可以让你的店铺与PayPal之间能够通讯,WooCommerce里介绍的是:输入您的PayPal API凭据以PayPal处理退款,其实应该是说在woocommerce中就可以直接处理退款,而不必登录paypal去处理。API凭据并不是必须填写的,你如果不需要在WooCommerce中处理退款,那就不用填。
API凭据中有如下三个字段需要你填写,请按照下文的方法登录PayPal获取
- API Username用户名
- API Password密码
- API Signature签名
如何获得API信息
- 登录你的paypal账户
- 进入页面:https://www.paypal.com/cgi-bin/webscr?cmd=_profile-api-ec-noncredentialed-payments,选择:在设置API许可或凭证之前,接受PayPal付款,然后提交。
- 然后进入页面:https://www.paypal.com/businessprofile/mytools/apiaccess/firstparty,选择申请API签名,点击同意并提交。
- 接下来逐一点击用户名、密码、签名的显示按钮,复制显示的内容并黏贴到你的woocommerce API 凭据输入框中。
我自己用沙盒测试了一下,确实能够在woocommerce后台退款,将订单改为已退款状态后,订单金额将自动退回。
配置PayPal仪表盘
大部分设置都可以在woocommerce中设置,但有少量配置需要在paypal中设置。
PayPal IPN URL
有必要为你的WooCommerce设置PayPal IPN URL。
PayPal即时付款通知(PayPal IPN)告知您的商店付款已成功(或未成功)。要了解有关如何在PayPal上进行设置的更多信息,请参阅:如何在您的PayPal帐户中激活IPN。
即时付款通知(IPN)是一种消息服务,可自动通知卖家店铺内用PayPal付款的交易事件,譬如付款成功或失败,卖家可以使用它实现后台自动化执行与管理功能,包括自动执行订单并向客户提供订单状态。
如何设置PayPal IPN
- 登录PayPal
- 进入设置(齿轮图标)>卖家工具>即时付款通知,然后点击更新按钮。
- 点击选择IPN设置按钮, 然后填入URL:https://yourdomain.com/?wc-api=WC_Gateway_Paypal (记得把域名换成你自己的)
- 确保上图中的接收即时付款通知消息选项已选中,然后保存。
自动返回
你可以在paypal中设置自动返回,以便把客户带回到网站里的收据页面。
如何设置自动返回
- 登录你的Paypal账户
- 进入设置(齿轮图标)>卖家工具>网站习惯设定,点击更新按钮进入
- 将自动返回设置为开启,同时填入返回URL:https://yourdomain.com/checkout/order-received/(下图中,请注意看paypal对自动返回页面的内容有一些建议,请对应参考)。填完后,完成付款的客户会动态重定向到正确的订单收据页。
- 你还可以在上图自动返回URL末尾添加?utm_nooverride=1,以确保这个交易转化记入的是原始流量来源,而不是来源于PayPal——这对于数据分析是非常有用的。
使用PayPal沙盒进行测试
在配置和调试网站的结账、支付功能流程时,您可以选择使用PayPal沙盒来测试,这样您就可以随心所欲地进行交易测试,而不用真的花钱去测试(毕竟扣点还蛮高的)。
为此,您需要有一个Paypal账户,然后登录PayPal开发者平台。
注册后请登录,从左侧菜单中找到Sandbox»Accounts,然后单击Create Account。(如果系统为你创建了默认账户的话,你可以先用起来,就不用新建了,接着往下看如何使用)
如果创建账户的话,在创建账户页面选择账户类型,personal 表示买家账户,business表示卖家账户,还要选一下账户所在的国家地区,注意:国家/地区将决定您的沙盒帐户的货币,该货币应与您的站点的货币相匹配,以避免订单被设置为待付款。同时要记得中国账户是无法给中国账户打款的,PayPal也不支持人民币收款。
你可以创建2个账户,一个business账户(沙盒卖家账户),用于填入woocommerce后台进行沙盒测试,一个personal账户用于模拟购物付款(即沙盒买家账户)。
接下来,在账户列表中,点击manage accounts下方的三个点,然后找到type=business类型的账户,然后选择“View/Edit Account”可以查看沙盒帐户的详细信息。
在账户详细信息中获取Email id(你也可以用相同的方法获取personal账户的邮箱、密码,以便测试购物)
上图中有一个api credentials标签,你也可以复制下来,下文中可填写到支付的设置中
请前往你的网站的WooCommerce>Settings>Payments>PayPal Standard
,将沙盒卖家账户的邮箱ID填到你的网站上的PayPal电子邮件和收件人电子邮件字段(如下图所示),同时记得勾选Enable PayPal Sandbox。
接下来你就可以尝试用personal的沙盒账户在你的网站购物,成功购买后的虚拟钱款,可以在你的business沙盒账户详情中查看funding,同时,此处的金额是已经扣除了手续费的。
好了,接下来我用截图讲解一下沙盒测试的过程。
首先在你的店铺里操作下单
然后在结账页面填写Paypal沙盒买家的姓名、邮箱、联系方式等信息,然后前往付款
在选择支付方式页面上,你能看到paypal支付方式,同时也能看到当前是沙盒状态的提示,我们点击proceed to paypal去支付。
接下来我们进入了paypal页面,需要你登录paypal,我们用沙盒买家账号的邮箱、密码登录。
然后选择用什么付款(保持默认即可),点击pay now
接下来就显示付款已经成功了,我们点击return to merchant可以回到网站中。
回到网站是跳转到了当前订单的收据页面。
接下来你登录网站后台,能看到woocommerce的order(订单)新增了一条,且status是processing,如果你那边看到的是on hold,那么可能是因为在woocommerce的paypal设置中,你填写的paypal邮箱和收件人邮箱有异常,两者应该同时为你的沙盒卖家邮箱。
接下来我们回到paypal开发者网站,在沙盒的notifications中能看到系统通知你收到钱啦。
跑通以上流程说明你的网站收款正常,你可以将woocommerce的paypal设置中的沙盒卖家邮箱换成你的真实PayPal邮箱了。
如果将真实的PayPal邮箱填入了woocommerce的paypal设置中,同时用沙盒买家账户下订单、付款进行测试,当你收到沙盒买家的订单时,你看到的订单状态会是pending payment(如下图所示),因为沙盒里的钱可不会真的给你啊。
常见问题
我是否需要在网站上安装SSL证书
非必须,但强烈推荐你安装。首先,付款是在PayPal网站上进行的,而不是您的结帐。其次,添加SSL证书是可选的,但绝对推荐。因为SSL是在搜索结果中的排名靠前的因素;它还可以确保传输到您的站点和从您的站点传输的任何信息的安全,这也是客户所期望的。
在WooCommerce使用PayPal需要付费吗?
在WooCommerce中启用paypal付款,WooCommerce是不收取任何费用的。但是PayPal是会收费的,PayPal根据您的帐户和销量收取交易费:对于PayPal的收付款业务,无论是个人还是企业类型账户,收付款功能都是一样的,手续费也都是4.4%+0.3USD(查看官方公布的手续费)。
我有待处理的订单,但没有收到付款。
如果客户没有在PayPal对订单付款,且没有在你的商店里取消订单,那么你的订单将显示为待处理/Pending(未支付),你只需要等待当订单达到保留库存时间时,订单将自动取消。
为什么我付款了,但订单仍在等待处理? * OR *为什么付款后我的购物车无法清算?
在这种情况下,应该是IPN出现故障了。请检查你的服务器,同时参考下文的“调试IPN问题”章节。
显示错误:Internal Server Error?
如果你在点击支付后看到下图所示的错误,表示你填写在woocommerce中设置的PayPal邮箱有错误。
在多个网站里使用同一个PayPal账户收款
WooCommerce使用“发票”系统。有一个设置能够“阻止重复的发票”。如果要在两个网站上使用发票,不可避免地会有重复的发票编号。你可以在WooCommerce的PayPal设置中,将每个站点的发票前缀设为不同的内容。
或者,可以在Paypal禁用重复发票的检查,请登录您的PayPal帐户,然后点击设置(齿轮)>卖家工具>收款习惯设定,点击更新按钮进入
然后将组织接受意外付款设置为否。
客户需要一个PayPal账户才能付款吗?
有一个选项可以让客户在不创建帐户的情况下付款,但首先需要在你的PayPal帐户中启用它。
登录PayPal,点击设置(齿轮)>卖家工具>收款习惯设定,点击更新按钮进入。然后找到paypal账号可选,选择:开启。
PayPal的卖家保护有效吗?
如果您使用送货地址——是。
如果您使用默认的帐单地址——否,因为PayPal API无法识别多个地址。
调试IPN问题
如上所述,当您收到付款、发出退款或取消付款时,PayPal会发送即时付款通知(IPN)给你。
如果IPN没有更新您的订单,可以根据下文逐一排查问题。在排查问题时,您可能希望关闭“自动取消待处理(未支付)订单”功能,以便您可以手动确认付款。那么,请进入WooCommerce>Settings>Products>Inventory页面,并将“Hold Stock(minutes)”选项设置留空,这样未付款的订单就不会因为自动取消了。
另外,你也可以登录PayPal帐户后,进入页面:https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history,查看IPN历史记录信息。
你是在本地测试的吗?
如果你在本地测试(在你自己的电脑上测试),例如在MAMP上,PayPal无法与你的商店进行连接与对话,这是正常的。只有当你将网站托管到服务器上时,它才能正常工作。
检查你的服务器是否有一个防火墙
网关通过https URL与PayPal对话,您的防火墙需要打开传出端口443。
启用日志
在woocommerce的paypal设置中启用日志后,请检查日志里是否已收到响应记录。如果没收到,则问题可能是与您某些插件有冲突,请尝试禁用插件来测试。
检查邮箱地址
检查你在woocommerce的paypal设置中的paypal邮箱与收件人邮箱是否时你的paypal邮箱,看看有无拼写错误。
检查冲突
如果订单状态在订单完成时未更改,请检查是否与W3 Total Cache缓存插件存在冲突。
如果您发现订单在付款后未变成完成状态/或处理中状态(不论是通过PayPal IPN还是任何其他支付网关),同时您正在运行W3 Total Cache插件,请检查插件的清除策略设置。进入页面:性能>页面缓存>清除策略(Performance > Page Cache > Purge Policy)。
要关闭发布评论页面/POST COMMENTS PAGES和发布评论源/POST COMMENTS FEED的清除策略,请取消选中该复选框。因为他们可能导致请求超时或内存不足,从而中断订单状态更新。
PayPal沙盒模式中的货币
当PayPal处于沙盒模式时,如果以沙盒货币以外的货币进行支付,它会自动将支付设置为待处理。确保您在PayPal沙盒中设置的货币与您的WooCommerce商店中的货币相同。
为什么客户付完钱并跳转回我的网站后没有看到下载产品的链接呢?
这可能是因为IPN在你的网站中没能正常运行。如下图所示,你可以尝试去PayPal账户设置中启用PDT(payment data transfer)。
其中的2.URL部分的填写规则请查看此处
然后在WooCommerce > Settings > Payments > PayPal Standard
中,将PDT身份令牌黏贴到输入框中。
付款依旧存在问题?
联系你的主机商,有些主机商,譬如GoDaddy,会出现诸如IPN的问题,但这不在WooCommerce插件的控制范围内。请确保来自PayPal的响应没有被你的服务器设置的缓存、防火墙或其他东西阻挡。