从收款角度来说,外贸建站分为两种,一种不需要客户在线付款(属于B2B外贸网站,以获得询盘为目标),一种需要客户在线付款(属于B2C外贸网站,多见于零售批发)。
本篇是WooCommerce教程之一,介绍的是WooCommerce B2C外贸网站常用的用户付款方法:PayPal标准付款——它能在用户下单后,将用户从你的网站带到paypal去为订单付款。
需要知道的是,如果你的商城是面向国内用户的,那不能使用PayPal,同时国内的paypal账号之间也不能转账,所以PayPal收款仅限于外贸网站。
20220512补充:
- 不要用真实账户进行小金额的交易尝试,容易被封号,理由是:一个订单,金额不应该那么小,显得很可疑。——这条来做读者的亲身体会。
- 目前Paypal接入woocommerce之后,会在check out页面直接加paypal按钮,点击后即可前往paypal支付,支付完成前,不会生成订单,这会导致,如果想让客户用paypal支付,又想让客户在下订单后、支付之前进行后台改价,变成了不可能。
题外话,目前非香港个人或实体是无法注册Stripe收款的,不用想钻空子的方式去注册了,只会被虐,所以国内基本就只有PayPal收款这一条路了。
注册PayPal账户
请先前往PayPal注册账户,如果你是一家企业,请注册PayPal企业账户,如果你是个人,就注册个人账户。不论是企业账户还是个人账户,都能够在店铺里收款。
PayPal个人账户和企业账户有何区别呢?下面是官方的说明。
所有PayPal账户均允许您付款和收款。
- 个人账户:推荐给在线购物和付款的个人;适用于希望在线收款和购物的兼职卖家或非商家用户。作为个人账户持有者,您的个人账户名称应与银行账户名称一致。
- 企业账户:适用于以公司/团体名义运营的商家。此类账户提供了附加功能,如允许向最多200名员工授予您账户的有限访问权限,以及允许使用客服邮箱地址别名来转发客户问题,从而使其更快得到处理。作为企业账户持有者,您需要添加公司名称的银行账户。
设置PayPal付款
woocommerce 5.5版本之后的PayPal设置教程
安装并启用插件WooCommerce PayPal Payments
在woocommerce – 设置 – 付款 中找到PayPal并点击设置进入
然后点击下图中的connect to PayPal,注意sandbox的勾选表示启用沙盒,也就是连接测试用的PayPal账号,它与连接正式账号不能同时使用。譬如你已经绑定了正式账号,结果勾选了sandbox,那么你的正式账号的绑定的信息会隐藏,将切换到sandbox模式,而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账户的邮箱、密码,以便测试购物)
请前往你的网站的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的响应没有被你的服务器设置的缓存、防火墙或其他东西阻挡。