06.02.2023Công nghệ

Quy trình sử dụng Laravel Cashier và Stripe thực hiện chức năng thanh toán

Nabeyama

Xin chào mọi người. Tôi là Nabeyama, hiện đang là quản lý kỹ thuật công ty Lampart. Lần này, tôi muốn giải thích sơ lược về phương pháp thực hiện cho những ai đang xem xét dịch vụ chức năng thanh toán. Đặc biệt, những trang thương mại điện tử và ứng dụng SaaS được cung cấp bởi Doanh nghiệp thì sẽ cần đến chức năng thanh toán. Tuy cũng có phương pháp là sử dụng chức năng thanh toán của Rakuten hoặc Amazon, AppStore chẳng hạn, nhưng đi kèm với việc gia tăng quy mô là việc gánh vác các phí tham gia và phí thủ tục cũng nhiều hơn. Vì thế mà doanh nghiệp cũng thường hay xem xét tự phát triển chức năng thanh toán. Nếu là implement chức năng thanh toán bằng PHP thì có nhiều case sử dụng Laravel Cashier và Stripe. Do đó, lần này tôi sẽ giải thích một cách đơn giản về quy trình implement chức năng thanh toán sau khi trình bày sơ lược về Stripe.

Định nghĩa Stripe

『Stripe』là dịch vụ WEB application cung cấp chức năng thanh toán thông qua internet. Hiện giờ các doanh nghiệp đã đưa vào sử dụng rộng rãi, bất kể là doanh nghiệp lớn hay nhỏ. Vì API đã được chuẩn bị rồi nên có thể liên kết với nhiều hệ thống khác nhau. Do đó, sử dụng Cashier của Laravel có thể implement bằng PHP được.

Ưu điểm của Stripe sẽ được trình bày dưới đây:
Chi phí tiết kiệm và ít gánh nặng hơn
Dễ dàng sử dụng ngay từ đầu
Không có chuyển đổi màn hình

Giá thấp

Ưu điểm đầu tiên chính là chí phí rẻ

Dịch vụ thanh toán Stripe đang áp dụng qui định tính hoa hồng thành quả. Sử dụng Stripe chỉ phải tốn 3.6% số tiền đã được thanh toán. Và dĩ nhiên là không tốn phí ban đầu hay phí hằng tháng, cho nên với doanh nghiệp đang mở ra thêm dịch vụ mới cũng dễ dàng sử dụng.

Dễ dàng ngay từ đầu

Ưu điểm thứ hai chính là dễ dàng sử dụng ngay từ lúc bắt đầu.

Hấp dẫn ở chỗ là với Stripe, chỉ cần nhập địa chỉ mail và họ tên, thông tin quốc gia, password là có thể đăng ký mới hội viên. Và thời gian xét duyệt nhanh nhất là 1 ngày thì dịch vụ đã có thể sớm bắt đầu dùng được. Đây là một dịch vụ rất tiện lợi vì nó có thể đáp ứng nhu cầu “Tôi muốn kiểm tra ngay sau khi thực hiện” và “Tôi muốn triển khai nó bên cạnh các dịch vụ hiện có và thanh toán ngay lập tức”.

Không chuyển đổi màn hình

Thứ ba là việc không có chuyển đổi màn hình.

Dịch vụ thanh toán mà có chuyển đổi màn hình chính là sẽ truy cập tự động sang site khác khi thực hiện thanh toán. Và sẽ có người dùng cảm thấy nghi hoặc và cho dừng thanh toán giữa chừng. Khi chuyển đổi màn hình, vì sẽ truy cập sang URL khác nên khi đường truyền internet không ổn định thì cũng không hiếm những trường hợp phát sinh sự cố không chuyển đổi màn hình và không thể thanh toán được. Ngược lại, với Stripe không có chuyển tiếp màn hình, việc thanh toán hoàn tất ngay trên WEB site đã implement. Việc thanh toán trở nên mượt mà nên không lý nào người dùng lại không tín nhiệm vào nó. Người dùng cũng không cần lo lắng sẽ phát sinh lỗi khi đang di chuyển mà đổi từ mạng wifi dùng sang đường mạng di động, vì ở màn hình thanh toán phòng ngừa được việc rời khỏi màn hình một cách vô nghĩa.

Quy trình lấy account của Stripe

Đầu tiên sẽ cần lấy API ở Stripe trước khi dùng Laravel Cashier thực hiện implement. Cho nên bắt buộc phải đăng ký account. Tôi sẽ trình bày cụ thể các bước từ lúc đăng ký hội viên cho đến khi GET API. Với những ai đang xem xét việc GET API nhất định hãy theo dõi nhé!

1. Đầu tiên hãy truy cập vào URL ghi dưới.
https://stripe.com/ja-us

2. Nhấn đăng ký (sign in) ở phía trên bên phải màn hình.

3. Nếu bạn đã đăng ký account rồi thì hãy đăng nhập trên màn hình ghi dưới nhé. Với những bạn cần đăng ký account, hãy click đăng ký user ở bên dưới màn hình.

4. Chuyển sang màn hình tạo account Stripe. Sau khi ghi rõ địa chỉ mail, họ tên, quốc gia, password, hãy check đồng ý vào chính sách bảo mật (privacy policy) rồi nhấn nút tạo account.

5. Hoàn tất bước trên là kết thúc đăng ký account. Từ thời điểm này là có thể GET API của chức năng thanh toán.

6. Tiếp theo chuyển qua GET API. Có thể lấy được API tại đó ngay lập tức mà không cần xét duyệt gì.

7. Từ thanh side bar của màn hình Home hãy chọn [nhà phát triển] (developer)

8. Tiếp theo nhấn [API key] có trong mục [developer]

9. Khi truy cập, ở giữa màn hình sẽ hiện thông tin public key (key có thể công khai) và secret key (key không công khai). Nếu copy token thì việc GET API hoàn tất. Ngoài ra, nếu bạn muốn thông tin có tính security hơn, bạn tạo key đi kèm giới hạn thì sẽ sinh ra thông tin public key và secret key.

Quy trình cài đặt Laravel Cashier và implement chức năng thanh toán

Tiếp theo là install Laravel Cashier rồi viết API key đã lấy lúc nãy ghi vào file .env, và tiến hành implement chức năng thanh toán. Các bước cụ thể là theo như ghi dưới. Và xin đề cập nội dung tiền đề là môi trường phát triển PHP, Laravel, v.v.. đã được chuẩn bị trước.

1. Đầu tiên là install Laravel Cashier. Để install bạn hãy sử dụng composer. Nhân đây, hãy chú ý là ở user root sẽ không thể sử dụng composer.
composer require “laravel/cashier”:”~7.0″

2. Tiếp theo là sửa file .env dán API key đã lấy lúc nãy vào. Hãy thiết lập dán public key vào STRIPE_KEY, dán secret key vào STRIPE_SECRET.

STRIPE_KEY= Public key
STRIPE_SECRET= Secret key

3. Tiếp theo là tạo controller. Hãy đổi tên controller cho phù hợp.
php artisan make:controller StripePaymentsController

4. Tiếp theo là implement controller. Set API key, thiết lập đơn vị tiền tệ và số tiền.

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Stripe\Stripe;
use Stripe\Customer;
use Stripe\Charge;

class StripePaymentsController extends Controller
{
public function index()
{
return view(‘index’);
}
public function payment(Request $request)
{
try
{
Stripe::setApiKey(env(‘STRIPE_SECRET’));
$customer = Customer::create(array(
‘email’ => $request->stripeEmail,
‘source’ => $request->stripeToken
));
$charge = Charge::create(array(
‘customer’ => $customer->id,
‘amount’ => 2000,
‘currency’ => ‘jpy’
));
return redirect()->route(‘complete’);
}
catch(Exception $e)
{
return $e->getMessage();
}
}
public function complete()
{
return view(‘complete’);
}
}


5. Tiếp theo là cài đặt Routing . Tên class hãy thay đổi cho phù hợp nhé.
Route::get(‘/’, ‘StripePaymentsController@index’)->name(‘index’);
Route::get(‘/payment’, ‘StripePaymentsController@payment’)->name(‘payment’);
Route::get(‘/complete’, ‘StripePaymentsController@complete’)->name(‘complete’);


6. Sau khi hoàn thành thiết lập routing, tạo View. Tạo index.blade.php và complete.blade.php, hãy tạo màn hình thanh toán và màn hình hoàn tất thanh toán .

7. Trong hướng dẫn lần này, index.blade.php đã coding như ghi dưới.
{{ csrf_field() }}

8. Hãy tạo View của màn hình hoàn tất thanh toán bằng complete.blade.php.
Thank you for purchasing this product!

10. Bên dưới là màn hình thanh toán và màn hình hoàn tất thanh toán.

11. Quy trình sử dụng API key của Stripe và implement chức năng thanh toán bằng Laravel Cashier xin hết.

Sự khác nhau giữa Stripe và PayPal, Square

Ngoài Stripe ra còn có vài dịch vụ thanh toán khác nữa.
Ví dụ điển hình được nêu ra đó là PayPal và Square. Thực tế không ít người đều muốn biết giữa 3 loại Stripe và PayPal, Square có sự khác nhau như thế nào. Ở tiêu đề lần này tôi sẽ trình bày điểm khác nhau giữa các loại.

Sự khác nhau giữa Stripe và PayPal

Sự khác biệt lớn giữa Stripe và PayPal chính là Phí thanh toán và Chu kỳ thanh toán. Stripe hiện đang có phí thanh toán là 3.8%, không phân biệt trong nước hay ngoài nước. Tuy nhiên, trường hợp của PayPal, nếu trong nước sẽ là 3.6%+40 Yên Nhật, giao dịch ngoài nước sẽ là 3.9%+40 Yên Nhật. Như vậy, phía Stripe có phí rẻ hơn và cũng dễ dàng cung cấp dịch vụ thanh toán ngoài nước. Vì các phí thủ tục sẽ có thay đổi, thông tin chi tiết xin hãy xác nhận qua home page của các dịch vụ thanh toán.

Chu kỳ thanh toán với Stripe là mỗi tuần, với PayPal là thao tác thủ công. Do đó, với những ai đang muốn nhận tiền một cách tự động thì phía Stripe sẽ dễ dùng hơn.

Sự khác nhau giữa Stripe và Square

Sự khác biệt lớn giữa Stripe và Square là có đang đối ứng thanh toán ngân hàng hay không. Stripe thì đang xử lý cho thanh toán ngân hàng, nhưng Square thì không. Vì vậy nếu muốn triển khai mở rộng các phương thức thanh toán và triển khai dịch vụ thì tôi khuyên là nên chọn Stripe.

Giải pháp sử dụng dịch vụ phát triển offshore lab của Lampart nếu implement gặp khó khăn

Việc triển khai dịch vụ thanh toán của Stripe bằng Laravel Cashier không hề đơn giản. Ngoài ra nếu thiếu nhân sự sẽ cần phải tuyển kỹ sư có kiến thức về PHP. Đối với những công ty đang gặp khó khăn với vấn đề thiếu nguồn lực hoặc nhân sự của công ty không thể tự phát triển, tại sao lại không xem xét thử "Offshore lab development" của công ty Lampart.

Việc phát triển mô hình offshore lab là dịch vụ phát triển ủy nhiệm phát triển hệ thống cho đội ngũ kỹ sư làm việc ở nước ngoài. Từ lúc lên kế hoạch cho đến giai đoạn bảo trì sử dụng, tổng chi phí bỏ ra sẽ rẻ hơn so với công ty phát triển hệ thống của Nhật. Thêm nữa, vì có tích lũy kiến thức và kinh nghiệm cho đội nhóm phát triển, nên hiện tại chúng tôi đang được các công ty liên doanh và công ty đang phát triển chú ý tới.

Hơn thế, dịch vụ phát triên mô hình offshore lab của công ty Lampart cũng đã có sẵn option chuyển giao cho tương lai dưới dạng công ty con nước ngoài, không phải chỉ xây dựng website mà còn có thể hoạt động như là một cơ sở phát triển - bảo trì vận hành trong tương lai.

Nếu bạn quan tâm, xin vui lòng liên hệ với chúng tôi.

BLOG

TRỞ THÀNH
THÀNH VIÊN CỦA LAMPART

Bạn có muốn cùng làm việc với chúng tôi tại Lampart - nơi mỗi một cá nhân đều có thể học hỏi và trưởng thành hay không?
Hãy nhanh chóng ứng tuyển và gửi CV về cho chúng tôi bằng cách nhấn nút Ứng tuyển phía dưới nhé
Chúng tôi hi vọng được cùng làm việc với bạn trong thời gian sắp tới.

Bảo mật thông tin

Thông tin cá nhân mà bạn cung cấp sẽ được bảo mật và chỉ được sử dụng cho mục đích liên lạc tuyển dụng như gửi tài liệu, e-mail và trao đổi bằng điện thoại và không sử dụng cho mục đích cá nhân khác.