专注于外贸建站,分享WordPress教程和Elementor教程

WooCommerce支付教程:如何添加PayPal标准支付

更新日期:2022-05-12
加入读者学习群
我用的页面编辑器
让我的客户网站GTmetrix测分A\A的主机Cloudways
独家优惠前3个月7折, 戳上方按钮注册即可自动带入优惠码LOYSEO
所赠主题插件价值>$49
主机送Astra Pro不限站点1年
gmail.comsina.com邮箱,注册易通过
遇到问题,联系我
来开通 SEO工具20+

从收款角度来说,外贸建站分为两种,一种不需要客户在线付款(属于B2B外贸网站,以获得询盘为目标),一种需要客户在线付款(属于B2C外贸网站,多见于零售批发)。

本篇是WooCommerce教程之一,介绍的是WooCommerce B2C外贸网站常用的用户付款方法:PayPal标准付款——它能在用户下单后,将用户从你的网站带到paypal去为订单付款。

需要知道的是,如果你的商城是面向国内用户的,那不能使用PayPal,同时国内的paypal账号之间也不能转账,所以PayPal收款仅限于外贸网站。

20220512补充:

  • 不要用真实账户进行小金额的交易尝试,容易被封号,理由是:一个订单,金额不应该那么小,显得很可疑。——这条来做读者的亲身体会。
  • 目前Paypal接入woocommerce之后,会在check out页面直接加paypal按钮,点击后即可前往paypal支付,支付完成前,不会生成订单,这会导致,如果想让客户用paypal支付,又想让客户在下订单后、支付之前进行后台改价,变成了不可能。

题外话,目前非香港个人或实体是无法注册Stripe收款的,不用想钻空子的方式去注册了,只会被虐,所以国内基本就只有PayPal收款这一条路了。

注册PayPal账户

请先前往PayPal注册账户,如果你是一家企业,请注册PayPal企业账户,如果你是个人,就注册个人账户。不论是企业账户还是个人账户,都能够在店铺里收款

image 16

PayPal个人账户和企业账户有何区别呢?下面是官方的说明。

PayPal kefu

所有PayPal账户均允许您付款和收款。

  • 个人账户:推荐给在线购物和付款的个人;适用于希望在线收款和购物的兼职卖家或非商家用户。作为个人账户持有者,您的个人账户名称应与银行账户名称一致。
  • 企业账户:适用于以公司/团体名义运营的商家。此类账户提供了附加功能,如允许向最多200名员工授予您账户的有限访问权限,以及允许使用客服邮箱地址别名来转发客户问题,从而使其更快得到处理。作为企业账户持有者,您需要添加公司名称的银行账户。

设置PayPal付款

woocommerce 5.5版本之后的PayPal设置教程

安装并启用插件WooCommerce PayPal Payments

在woocommerce – 设置 – 付款 中找到PayPal并点击设置进入

woocommerce PayPal payment setting

然后点击下图中的connect to PayPal,注意sandbox的勾选表示启用沙盒,也就是连接测试用的PayPal账号,它与连接正式账号不能同时使用。譬如你已经绑定了正式账号,结果勾选了sandbox,那么你的正式账号的绑定的信息会隐藏,将切换到sandbox模式,而sandbox中绑定的账号,不应该是你的正式账号,需要你去PayPal开发者平台开通一个测试用的账号来进行绑定。下面我们先说绑定正式账号。

woocommerce PayPal payment setting 16

点击connect to PayPal按钮后,就弹出一个框,让你输入PayPal,注意,如果你跟我一样,用的浏览器语言是英文,那么你可能在下图中的国家里找不到中国,但不用担心,你可以不选国家,也可以保持默认的美国,点击next继续,后文中会出现中国选项。

woocommerce PayPal payment setting 1

接下来就是让你输入账号密码,填完点击登录

woocommerce PayPal payment setting 15

待你登录后,又弹出了账号和国家地区,这下默认国家地区就是中国了,继续点击下一步

woocommerce PayPal payment setting 13

接下来,界面上显示账号是个人用还是公司用,你是个人的号,就选个人。然后下拉界面,底部有个下一步按钮,点它继续。

woocommerce PayPal payment setting 12

最后就是问你是否同意并连接到woocommerce,选同意即可。

woocommerce PayPal payment setting 10

点完你便能看到下图的成功提示信息。如果你中途因各种原因中断了绑定流程,从头再来一遍试试,不要放弃。我的号曾经绑定过一个站,然后今天再绑定时一闪而过一个提示(没看清楚是啥)被迫中断了绑定流程,我就从头再来一遍,就绑定成功了。

woocommerce PayPal payment setting 9

绑定完后,你会回到woocommerce的PayPal付款设置页面,你将看到下图,绑定PayPal所需的Live类的字段都填入了,你不要修改它们。如果你点了图中的disconnect按钮,抱歉,那么这些绑定信息就会原地消失,而且不能还原,一点警示信息都没有(不知道woocommerce以后会不会改这个交互),你只能刷新界面重新绑定一次了。

woocommerce PayPal payment setting 8

关于上图中的沙盒测试(sandbox),你可以理解为用测试账号来进行付款收款测试,国内的账号之间是无法收付款的,沙盒生成的测试账号是需要PayPal生成的,请查看下文中的沙盒账号创建教程,将创建好的business类型的账号、密码用于在连接沙盒账户时使用。连接沙盒账号的过程与连接正式账号的流程是一样的,此处就不再赘述,沙盒账号测试流程也请参考下文中的沙盒测试章节。

woocommerce 5.5版本以前的PayPal设置教程

前往: WooCommerce > Settings > Payments.在列表中找到paypal standard 并开启,然后点击set up进入设置

image 21 1 16 10 16 33

接下来最重要的是输入你的PayPal账户邮箱。

image 14

高级选项/ Advanced options

image 15

高级选项并非必填的,请参考下文、了解每一项的作用后再按需填写。

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中处理退款,那就不用填。

ppstandard settings api

API凭据中有如下三个字段需要你填写,请按照下文的方法登录PayPal获取

  • API Username用户名
  • API Password密码
  • API Signature签名

如何获得API信息

  1. 登录你的paypal账户
  2. 进入页面:https://www.paypal.com/cgi-bin/webscr?cmd=_profile-api-ec-noncredentialed-payments,选择:在设置API许可或凭证之前,接受PayPal付款,然后提交。image 41
  3. 然后进入页面:https://www.paypal.com/businessprofile/mytools/apiaccess/firstparty,选择申请API签名,点击同意并提交。image 42
  4. 接下来逐一点击用户名、密码、签名的显示按钮,复制显示的内容并黏贴到你的woocommerce API 凭据输入框中。
image 43

我自己用沙盒测试了一下,确实能够在woocommerce后台退款,将订单改为已退款状态后,订单金额将自动退回。

image 67

配置PayPal仪表盘

大部分设置都可以在woocommerce中设置,但有少量配置需要在paypal中设置。

PayPal IPN URL

有必要为你的WooCommerce设置PayPal IPN URL。

PayPal即时付款通知(PayPal IPN)告知您的商店付款已成功(或未成功)。要了解有关如何在PayPal上进行设置的更多信息,请参阅:如何在您的PayPal帐户中激活IPN。

即时付款通知(IPN)是一种消息服务,可自动通知卖家店铺内用PayPal付款的交易事件,譬如付款成功或失败,卖家可以使用它实现后台自动化执行与管理功能,包括自动执行订单并向客户提供订单状态。

如何设置PayPal IPN

  1. 登录PayPal
  2. 进入设置(齿轮图标)>卖家工具>即时付款通知,然后点击更新按钮。image 38
  3. 点击选择IPN设置按钮, 然后填入URL:https://yourdomain.com/?wc-api=WC_Gateway_Paypal (记得把域名换成你自己的)image 39image 40
  4. 确保上图中的接收即时付款通知消息选项已选中,然后保存。

自动返回

你可以在paypal中设置自动返回,以便把客户带回到网站里的收据页面。

image 48

如何设置自动返回

  1. 登录你的Paypal账户
  2. 进入设置(齿轮图标)>卖家工具>网站习惯设定,点击更新按钮进入
image 36
  1. 将自动返回设置为开启,同时填入返回URL:https://yourdomain.com/checkout/order-received/(下图中,请注意看paypal对自动返回页面的内容有一些建议,请对应参考)。填完后,完成付款的客户会动态重定向到正确的订单收据页。
image 37
  1. 你还可以在上图自动返回URL末尾添加?utm_nooverride=1,以确保这个交易转化记入的是原始流量来源,而不是来源于PayPal——这对于数据分析是非常有用的。

使用PayPal沙盒进行测试

在配置和调试网站的结账、支付功能流程时,您可以选择使用PayPal沙盒来测试,这样您就可以随心所欲地进行交易测试,而不用真的花钱去测试(毕竟扣点还蛮高的)。

为此,您需要有一个Paypal账户,然后登录PayPal开发者平台。

注册后请登录,从左侧菜单中找到Sandbox»Accounts,然后单击Create Account。(如果系统为你创建了默认账户的话,你可以先用起来,就不用新建了,接着往下看如何使用)

image 44

如果创建账户的话,在创建账户页面选择账户类型,personal 表示买家账户,business表示卖家账户,还要选一下账户所在的国家地区,注意:国家/地区将决定您的沙盒帐户的货币,该货币应与您的站点的货币相匹配,以避免订单被设置为待付款。同时要记得中国账户是无法给中国账户打款的,PayPal也不支持人民币收款。

image 45

你可以创建2个账户,一个business账户(沙盒卖家账户),用于填入woocommerce后台进行沙盒测试,一个personal账户用于模拟购物付款(即沙盒买家账户)。

接下来,在账户列表中,点击manage accounts下方的三个点,然后找到type=business类型的账户,然后选择“View/Edit Account”可以查看沙盒帐户的详细信息。

image 46

在账户详细信息中获取Email id(你也可以用相同的方法获取personal账户的邮箱、密码,以便测试购物)

image 49
上图中有一个api credentials标签,你也可以复制下来,下文中可填写到支付的设置中

请前往你的网站的WooCommerce>Settings>Payments>PayPal Standard,将沙盒卖家账户的邮箱ID填到你的网站上的PayPal电子邮件和收件人电子邮件字段(如下图所示),同时记得勾选Enable PayPal Sandbox。

image 66

接下来你就可以尝试用personal的沙盒账户在你的网站购物,成功购买后的虚拟钱款,可以在你的business沙盒账户详情中查看funding,同时,此处的金额是已经扣除了手续费的。

image 51

好了,接下来我用截图讲解一下沙盒测试的过程。

首先在你的店铺里操作下单

image 57

然后在结账页面填写Paypal沙盒买家的姓名、邮箱、联系方式等信息,然后前往付款

image 58

在选择支付方式页面上,你能看到paypal支付方式,同时也能看到当前是沙盒状态的提示,我们点击proceed to paypal去支付。

image 59

接下来我们进入了paypal页面,需要你登录paypal,我们用沙盒买家账号的邮箱、密码登录。

image 60

然后选择用什么付款(保持默认即可),点击pay now

image 61

接下来就显示付款已经成功了,我们点击return to merchant可以回到网站中。

image 62

回到网站是跳转到了当前订单的收据页面。

image 63

接下来你登录网站后台,能看到woocommerce的order(订单)新增了一条,且status是processing,如果你那边看到的是on hold,那么可能是因为在woocommerce的paypal设置中,你填写的paypal邮箱和收件人邮箱有异常,两者应该同时为你的沙盒卖家邮箱。

image 64

接下来我们回到paypal开发者网站,在沙盒的notifications中能看到系统通知你收到钱啦。

image 65

跑通以上流程说明你的网站收款正常,你可以将woocommerce的paypal设置中的沙盒卖家邮箱换成你的真实PayPal邮箱了。

如果将真实的PayPal邮箱填入了woocommerce的paypal设置中,同时用沙盒买家账户下订单、付款进行测试,当你收到沙盒买家的订单时,你看到的订单状态会是pending payment(如下图所示),因为沙盒里的钱可不会真的给你啊。

image 50

常见问题

我是否需要在网站上安装SSL证书

非必须,但强烈推荐你安装。首先,付款是在PayPal网站上进行的,而不是您的结帐。其次,添加SSL证书是可选的,但绝对推荐。因为SSL是在搜索结果中的排名靠前的因素;它还可以确保传输到您的站点和从您的站点传输的任何信息的安全,这也是客户所期望的。

在WooCommerce使用PayPal需要付费吗?

在WooCommerce中启用paypal付款,WooCommerce是不收取任何费用的。但是PayPal是会收费的,PayPal根据您的帐户和销量收取交易费:对于PayPal的收付款业务,无论是个人还是企业类型账户,收付款功能都是一样的,手续费也都是4.4%+0.3USD(查看官方公布的手续费)。

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

如果客户没有在PayPal对订单付款,且没有在你的商店里取消订单,那么你的订单将显示为待处理/Pending(未支付),你只需要等待当订单达到保留库存时间时,订单将自动取消。

image 17

为什么我付款了,但订单仍在等待处理? * OR *为什么付款后我的购物车无法清算?

在这种情况下,应该是IPN出现故障了。请检查你的服务器,同时参考下文的“调试IPN问题”章节。

显示错误:Internal Server Error?

如果你在点击支付后看到下图所示的错误,表示你填写在woocommerce中设置的PayPal邮箱有错误。

paypal-standard-internal-server-error

在多个网站里使用同一个PayPal账户收款

WooCommerce使用“发票”系统。有一个设置能够“阻止重复的发票”。如果要在两个网站上使用发票,不可避免地会有重复的发票编号。你可以在WooCommerce的PayPal设置中,将每个站点的发票前缀设为不同的内容。

2016-03-10 at 09.24

或者,可以在Paypal禁用重复发票的检查,请登录您的PayPal帐户,然后点击设置(齿轮)>卖家工具>收款习惯设定,点击更新按钮进入

image 54

然后将组织接受意外付款设置为否。

image 53

客户需要一个PayPal账户才能付款吗?

有一个选项可以让客户在不创建帐户的情况下付款,但首先需要在你的PayPal帐户中启用它。

登录PayPal,点击设置(齿轮)>卖家工具>收款习惯设定,点击更新按钮进入。然后找到paypal账号可选,选择:开启。

image 56

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)。

Screen Shot 2013-03-23 at 15.34.11

要关闭发布评论页面/POST COMMENTS PAGES和发布评论源/POST COMMENTS FEED的清除策略,请取消选中该复选框。因为他们可能导致请求超时或内存不足,从而中断订单状态更新。

PayPal沙盒模式中的货币

当PayPal处于沙盒模式时,如果以沙盒货币以外的货币进行支付,它会自动将支付设置为待处理。确保您在PayPal沙盒中设置的货币与您的WooCommerce商店中的货币相同。

为什么客户付完钱并跳转回我的网站后没有看到下载产品的链接呢?

这可能是因为IPN在你的网站中没能正常运行。如下图所示,你可以尝试去PayPal账户设置中启用PDT(payment data transfer)。

image 36
image 52

其中的2.URL部分的填写规则请查看此处

然后在WooCommerce > Settings > Payments > PayPal Standard中,将PDT身份令牌黏贴到输入框中。

PayPal PDT WooCommerce

付款依旧存在问题?

联系你的主机商,有些主机商,譬如GoDaddy,会出现诸如IPN的问题,但这不在WooCommerce插件的控制范围内。请确保来自PayPal的响应没有被你的服务器设置的缓存、防火墙或其他东西阻挡。

点赞
0 / 5 5

Your page rank:

外贸建站技术姐Bonnie
外贸建站技术姐Bonnie

Bonnie是LOYSEO的创始人,在建站领域有着超过14年的经验,热爱能将想法变为现实的WordPress,更是Elementor的忠实用户~

2 回复

  1. 您好,按照您的方式设置paypal,并且启用沙盒测试,然后用沙盒生成的Personal账号购买产品,可以正常付款,woocommerce后台订单也正常接收到订单并且显示processing,但是回到paypal沙盒查看Notification没有显示已收到货款,请问这是什么原因呢?感谢解答

    1. 沙盒是测试用的,不会把钱直接给你呀。。
      流程通了就没问题,可以关闭沙盒直接用就是了。
      这个支付功能是成熟的,没啥问题的。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

LOYSEO