/ / Cách tích hợp PayPal Checkout trong ứng dụng React

Cách tích hợp PayPal Checkout trong ứng dụng React

Trong không gian thương mại điện tử, các giải pháp thanh toán kỹ thuật số đã góp phần tăng đáng kể doanh thu và tăng trưởng chung của doanh nghiệp bằng cách cho phép và xử lý các khoản thanh toán xuyên biên giới một cách dễ dàng.


PayPal cung cấp giải pháp thanh toán kỹ thuật số đơn giản và linh hoạt để quản lý các giao dịch trực tuyến. Bằng cách kết hợp PayPal vào các ứng dụng web của mình, bạn có thể đảm bảo khách hàng tiếp cận trải nghiệm thanh toán liền mạch và an toàn, từ đó có thể dẫn đến tăng doanh số và niềm tin tổng thể về thương hiệu.

Đọc tiếp để tìm hiểu cách tích hợp PayPal vào các ứng dụng React của bạn.


Thiết lập tài khoản PayPal Sandbox

PayPal Sandbox là môi trường thử nghiệm do PayPal cung cấp để bạn có thể thử nghiệm tích hợp thanh toán trong các ứng dụng của mình. Nó cung cấp một môi trường mô phỏng bao gồm tất cả các tính năng thanh toán có trong môi trường sản xuất trực tiếp của PayPal.

Đơn giản, hộp cát cung cấp một nền tảng để thử nghiệm tích hợp thanh toán mà không cần tiền thật.

Logo Paypal

Sử dụng tài khoản sandbox, bạn có thể truy cập tài khoản PayPal ảo bằng tiền thử nghiệm, tài khoản này cho phép bạn mô phỏng nhiều loại giao dịch và tích hợp thanh toán.

Để tạo tài khoản hộp cát, hãy truy cập Bảng điều khiển dành cho nhà phát triển PayPal và đăng nhập bằng thông tin đăng nhập tài khoản PayPal của bạn. Tiếp theo, trên bảng điều khiển dành cho nhà phát triển, nhấp vào Tài khoản hộp cát cái nút.

Tạo nút cài đặt Tài khoản hộp cát

Để xử lý giao dịch PayPal từ ứng dụng React của bạn, bạn cần có hai tài khoản sandbox: tài khoản doanh nghiệp và tài khoản cá nhân. Hai tài khoản này sẽ giúp bạn mô phỏng một giao dịch hoàn chỉnh—từ cả chế độ xem của khách hàng và chế độ xem của người bán (doanh nghiệp).

Điều quan trọng là phải kiểm tra chức năng tích hợp thanh toán trên ứng dụng của bạn từ cả hai khía cạnh.

bấm vào Tạo tài khoản để thiết lập hai tài khoản.

Tạo trang cài đặt Tài khoản Sandbox

Trên trang cài đặt tài khoản, hãy tạo một trong các loại tài khoản: cá nhân, sau đó là doanh nghiệp. Bạn sẽ sử dụng thông tin đăng nhập tài khoản cá nhân để đăng nhập vào tài khoản cá nhân sandbox của PayPal. Mặt khác, bạn sẽ sử dụng thông tin đăng nhập cho tài khoản doanh nghiệp để tạo dự án trên bảng điều khiển dành cho nhà phát triển nhằm lấy ID khách hàng của PayPal.

Tạo trang cài đặt tài khoản cá nhân và doanh nghiệp

Ngoài ra, thay vì tạo tài khoản mới, bạn có thể sử dụng tài khoản hộp cát mặc định do PayPal cung cấp để kiểm tra tích hợp thanh toán.

Tạo Dự án PayPal

Trên trang bảng điều khiển dành cho nhà phát triển, nhấp vào Ứng dụng và thông tin xác thực nút và bấm Tạo ứng dụng để thiết lập một dự án PayPal. Tiếp theo, điền tên ứng dụng của bạn, chọn thương gia làm loại tài khoản và chọn thông tin đăng nhập cho tài khoản doanh nghiệp mà bạn đã tạo ban đầu.

Tạo ứng dụng Paypal

Cuối cùng, sao chép ID ứng dụng khách.

Thiết lập ứng dụng khách React

Tạo một ứng dụng React, mở công khai/index.html tệp và thêm ID khách hàng của bạn ở định dạng được hiển thị bên dưới trong phần phần tử đầu.

     <script src="https://www.paypal.com/sdk/js?client-id=your-client-ID&currency=USD"></script>

Thẻ tập lệnh tải PayPal JavaScript SDK, một thư viện cung cấp chức năng phía máy khách để tương tác với API của PayPal và cung cấp chức năng này để sử dụng trong các thành phần React.

Bằng cách sử dụng các chức năng của SDK, bạn có thể tạo nút thanh toán PayPal xử lý luồng thanh toán liên quan đến việc gửi chi tiết thanh toán tới PayPal, ủy quyền thanh toán và xử lý phản hồi thanh toán.

Tạo một thành phần sản phẩm

Trong thư mục /src, tạo một thư mục thành phần mới và thêm hai tệp: Product.js và PayPalCheckout.js.

Mở tệp Product.js và thêm mã bên dưới:

 import React, { useState } from "react";
import "./product.style.css";
import "../assests/laptop.jpg";
function App() {
  return (
    <div className="Product-container">
      <header className="Product-content">
        <div className="product">
          <img src={require("../assests/laptop.jpg")} alt="laptop" />
        </div>
        <div className="desc">
          <h2> MacBook Pro</h2>
          <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit.
           Maxime mollitia,molestiae quas vel sint commodi repudiandae
           consequuntur.
          </p>
          <h3>Price: $350.00</h3>
        </div>
      </header>
    </div>
  );
}

export default App;

Mã này hiển thị một thành phần sản phẩm đơn giản.

Tạo Thành phần PayPal Checkout

Thêm mã sau vào tệp PayPalCheckout.js:

 import React, { useRef, useEffect, useState } from "react";
import PaymentFailure from "./PaymentFailure";
import PaymentSuccess from "./PaymentSuccess";

function PayPalCheckout() {
  const paypal = useRef();
  const [transactionStatus, setTransactionStatus] = useState(null);

  useEffect(() => {
    window.paypal
      .Buttons({
        createOrder: (data, actions, err) => {
          return actions.order.create({
            intent: "CAPTURE",
            purchase_units: [
              {
                description: "MacBook Laptop",
                amount: {
                  currency_code: "USD",
                  value: 350.00,
                },
              },
            ],
          });
        },
        onApprove: async (data, actions) => {
          const order = await actions.order.capture();

          console.log("success", order);
          setTransactionStatus("success");
        },
        onError: (err) => {
          console.log(err);
          setTransactionStatus("failure");
        },
      })
      .render(paypal.current);
  }, []);

  if (transactionStatus === "success") {
    return <PaymentSuccess />;
  }

  if (transactionStatus === "failure") {
    return <PaymentFailure />;
  }

  return (
    <div>
      <div ref={paypal}></div>
    </div>
  );
}

export default PayPalCheckout;

Đoạn mã này sử dụng ba hook React: useRef, useState và useEffect. Nó sử dụng useRef để tạo tham chiếu đến phần tử div, phần tử này sẽ hoạt động như một vùng chứa cho nút thanh toán PayPal.

Nó sử dụng useEffect để tạo nút PayPal với paypal.Buttons và sau đó hiển thị nút đó trong phần tử div được tham chiếu bởi paypal.currenphương pháp t.

Các paypal.Buttons chức năng lấy một đối tượng với một số thuộc tính:

  • createOrder: Hàm này trả về một đối tượng chứa thông tin chi tiết về đơn hàng mà người dùng đã tạo. Chi tiết đơn đặt hàng sẽ bao gồm các chi tiết cụ thể của sản phẩm hoặc dịch vụ như số lượng, tên sản phẩm, mô tả và đơn vị tiền tệ.
  • onApprove: Chức năng này chạy khi thanh toán được phê duyệt. Nó ghi lại khoản thanh toán và ghi thông báo thành công vào bảng điều khiển. Nó cũng đặt Trạng thái giao dịch nhà nước để thành công.
  • onError: Chức năng này chạy khi thanh toán gặp lỗi. Nó ghi thông báo lỗi vào bảng điều khiển và đặt Trạng thái giao dịch nhà nước để sự thất bại.

Cuối cùng, thành phần hiển thị có điều kiện một trong hai Thanh toán thành công hoặc thanh toán thất bại thành phần phụ thuộc vào giá trị của Trạng thái giao dịch tình trạng.

Hai thành phần này sẽ chỉ hiển thị sau khi giao dịch thành công hoặc giao dịch thất bại. Hãy tiếp tục và tạo hai tệp: Thanh toánSuccess.jsPaymentFailure.js trong thư mục thành phần và thêm một thành phần chức năng với một thành phần đoạn biểu thị trạng thái của giao dịch.

Cập nhật Thành phần App.js

Mở tệp src/App.js và thêm mã bên dưới:

 import React, { useState } from "react";
import Product from "./components/Product";
import PayPalCheckout from "./components/PayPalCheckout";
import "./App.css";

function App() {
  const [checkout, setCheckOut] = useState(false);

  return (
      <div className="App">
        <header className="App-header">
          {checkout ? (
            <PayPalCheckout />
          ) : (
            <div className="Product">
              <button
                className="checkout"
                onClick={() => {
                  setCheckOut(true);
                }}
              >
                Add to Cart & Checkout
              </button>
              <Product />
            </div>
          )}
        </header>
      </div>
  );
}

export default App;

Mã này sử dụng phương pháp hiển thị có điều kiện để hiển thị thành phần PayPalCheckout hoặc thành phần Sản phẩm. Móc useState khởi tạo một biến trạng thái có tên checkout là false, giúp theo dõi trạng thái hiện tại khi tải trang.

Ban đầu, React kết xuất thành phần Sản phẩm, bao gồm cả nút thanh toán. Khi người dùng nhấp vào nút thanh toán, hàm xử lý onClick sẽ kích hoạt để cập nhật biến thanh toán thành true. Thay vào đó, bản cập nhật này sẽ nhắc thành phần Ứng dụng kết xuất thành phần PayPalCheckout.

Tích hợp Paypal

Các tính năng thanh toán PayPal bổ sung

Các tính năng thanh toán của PayPal, chẳng hạn như One Touch và PayPal Credit, đảm bảo khách hàng của bạn có thể tận hưởng quy trình thanh toán hợp lý, an toàn, đáng tin cậy và thuận tiện.

Mặc dù bạn có thể xây dựng dịch vụ xử lý thanh toán của riêng mình từ đầu, nhưng sử dụng nền tảng thanh toán như PayPal tốt hơn là một giải pháp thay thế linh hoạt và hiệu quả hơn. Về cơ bản, với giải pháp Thanh toán sẵn có, bạn không cần phải lo lắng về việc quản lý cơ sở hạ tầng cần thiết để thiết lập dịch vụ thanh toán tùy chỉnh.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *