從收款角度來說,架設企業網站分為兩種,一種不需要客戶在線付款(屬於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 IPNURL。
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的回應沒有被你的伺服器設置的緩存、防火牆或其他東西阻擋。