很多時候,我們的應用程式需要提供一種簡單的方式來支付購買產品或服務的費用。 Stripe 是接收付款的好選擇。在這篇文章中,我們將學習如何建立條紋付款鏈接,以便您可以將用戶重新導向到這些連結以發送付款。
Stripe 是一家提供線上支付處理服務的科技公司,允許企業透過網路接受付款。它提供了一套工具和 API,使公司能夠管理線上交易、訂閱和其他與付款相關的任務。
開始寫程式碼之前,我們必須先了解以下Stripe元件:
價格:價格是產品的特定定價配置。它定義了客戶為產品支付的金額,以及任何其他定價詳細信息,例如貨幣、計費週期和定價等級。例如,對於名為「社區會員」的服務,您可以有兩個價格:
付款連結:付款連結是允許客戶以特定價格付款的 URL。當客戶點擊付款連結時,他們會被重定向到 Stripe 託管的付款頁面,可以在其中輸入付款資訊並完成交易。付款連結可以透過電子郵件、訊息應用程式分享,或嵌入您的網站。
價格也允許我們定義付款類型,可以是「定期」或「一次性」。對於“社區會員資格範例”,年度付款可以是 one_type,每月付款可以是經常性的。每年,用戶都會續訂(或不續訂)會員資格,並重新選擇付款方式。
stripe php 庫可以使用 Composer 安裝,因此,要安裝它,您只需在專案根資料夾中執行以下命令:
composer require stripe/stripe-php
在檢索 API 金鑰之前,您必須在 Stripe 上註冊。註冊後,您可以按照以下步驟操作:
我們可以先建立產品,然後建立價格,或將產品名稱嵌入價格選項中來建立 Stripe Price。讓我們使用第一種方式進行編碼,這樣我們就可以看到所有的過程。
$stripe = new \Stripe\StripeClient(<your_stripe_api_key>); $product = $stripe->products->create([ 'name' => 'Community Subscription', 'description' => 'A Subscription to our community', ]); $price = $stripe->prices->create([ 'currency' => 'usd', 'unit_amount' => 5025, 'product': $product->id, 'type' => 'one_time' ]);
我們一步一步解釋一下上面的程式碼:
unit_amount 參數值得特別注意。 Stripe 文件對unit_amount 進行瞭如下描述:「以美分為單位的正整數(或免費價格為0),表示收費金額。」這意味著我們必須將價格乘以100 以將其轉換為美分,然後再傳遞給unit_amount 參數。例如,如果價格為 10.99 美元,我們會將 unit_amount 設定為 1099。這是一個常見問題,因此請務必仔細檢查您的程式碼,以避免任何意外的定價問題。
例如,如果您有一個「$amount」變量,它會保存一個浮點值作為金額,您可以編寫以下程式碼:
$formattedAmount = (int)($amount * 100);
到目前為止,我們已經創建了一個格式正確的金額的價格。現在是時候建立付款連結了。
$stripe = new \Stripe\StripeClient(<your_stripe_api_key>); $paymentLink = $stripe->paymentLinks->create([ 'line_items' => [ [ 'price' => $price->id, 'quantity' => 1, ] ], 'after_completion' => [ 'type' => 'redirect', 'redirect' => [ 'url' => <your redirect link> ] ] ]);
讓我們一步一步解釋一下:
We could redirect to an intermediate url which could perform some stuff such as updating our database register payment. The following code shows a simple Symfony controller which would perform the required tasks and then would redirect to the final url where the user will see that the payment has been completed.
class StripeController extends AbstractController { #[Route('/confirm-payment', name: 'confirm-payment', methods: ['GET'])] public function confirmPayment(Request $request): Response { // Here you perform the necessary stuff $succeedUrl = '...'; return new RedirectResponse($succeedUrl); } }
After we have created the PaymentLink object, we can access the string payment url by the url property:
$paymentUrl = $paymentLink->url;
In this post we have learned how to configure our php backend to easily accept payments with stripe using the stripe-php component.
Processing the payments in your php backend offers some advantages such as:
If you like my content and enjoy reading it and you are interested in learning more about PHP, you can read my ebook about how to create an operation-oriented API using PHP and the Symfony Framework. You can find it here: Building an Operation-Oriented Api using PHP and the Symfony Framework: A step-by-step guide
以上是使用 Stripe 和 PHP 輕鬆接收付款的詳細內容。更多資訊請關注PHP中文網其他相關文章!