Mã nguồn hệ thống thanh toán PHP

Trước tiên, bạn cần có kiến ​​thức cơ bản tốt về các mã cần thiết. Java, C# và PHP. Thứ hai, bạn phải tham khảo ý kiến ​​của nhà cung cấp cổng thanh toán về API của họ và các tài liệu khác cần thiết để hoàn thành nhiệm vụ. Cuối cùng, bạn cần kiểm tra, kiểm tra, kiểm tra mã cuối cùng của mình trước khi đưa vào hoạt động, nếu không, bạn có thể đang phải đối mặt với một thảm họa tài chính trong tay.

Trong thời điểm xảy ra đại dịch toàn cầu, một cổng thanh toán hoạt động trơn tru là chìa khóa để vận hành một doanh nghiệp có sự hiện diện trực tuyến đáng kể. Nếu bạn đang sử dụng một phần mềm thương mại điện tử như BigC Commerce, bạn hầu như không cần bất kỳ kỹ năng mã hóa nào vì ứng dụng đã có các cổng thanh toán chính như PayPal được tích hợp liền mạch. Kỹ năng này trở nên quan trọng khi bạn muốn kết nối cổng thanh toán ngay với trang web của mình. Nếu bạn có kỹ năng mã hóa trong C#, Java hoặc PHP, thì những hướng dẫn này sẽ giúp bạn dễ dàng điều hướng qua các bước tích hợp cổng thanh toán mà bạn chọn

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn các bước cần thiết để tích hợp đúng cổng thanh toán bạn chọn vào trang web của bạn. Mặc dù các nhà cung cấp thường cung cấp mã nguồn API để làm cho quy trình trở nên dễ dàng nhất có thể, nhưng các công việc liên quan yêu cầu bạn phải có một số kỹ năng viết mã để bắt đầu. Nếu bạn không thoải mái với ý tưởng đó, thì đã đến lúc bạn nhờ ai đó làm việc đó cho bạn. Một tùy chọn khác là kiểm tra xem doanh nghiệp của bạn có thể hoạt động tốt hơn không với một số công cụ giỏ hàng hàng đầu tích hợp các cổng thanh toán này ngay lập tức

payment gateway integration

Bất chấp sự bùng phát của COVID-19, thương mại điện tử xuyên biên giới đã tăng trưởng đáng kể 21% từ tháng 1 đến tháng 6 năm 2020. Chỉ riêng tại Hoa Kỳ, “những người mua sắm ở các bang” đã mua hàng trực tuyến nhiều hơn từ các cửa hàng trực tuyến bên ngoài quốc gia, dẫn đến doanh số bán hàng trực tuyến xuyên biên giới tăng 42% chỉ trong tháng 5

Nguồn. Toàn cầu-e 2020;

Các doanh nghiệp có hoạt động trực tuyến quan trọng sẽ đạt được nhiều lợi ích khi tiếp cận những người mua sắm này, những người không ngại nhận đơn đặt hàng từ bên ngoài quốc gia của họ giữa đại dịch toàn cầu. Một phần trong cách họ có thể làm điều đó là đảm bảo rằng họ có các nhà cung cấp cổng thanh toán đáng tin cậy để đáp ứng nhu cầu của những người mua sắm toàn cầu này. Tuy nhiên, nói thì dễ hơn làm, với những giải pháp này tỏ ra không phù hợp trong việc xử lý giao thông và các quy định ở Trung Quốc chẳng hạn

Hầu hết các doanh nghiệp cố gắng khắc phục tình hình bằng cách có năm bộ xử lý cổng và bốn ngân hàng mua lại, nhận ra rằng một giải pháp không hỗ trợ tính năng thanh toán mà một quốc gia hoặc khu vực cụ thể cần. Khi đó, thách thức đối với các giải pháp thanh toán này là đơn giản hóa tính đa dạng này do tình trạng công nghệ hiện có sẵn áp đặt lên chúng.

Trong khi các nhà cung cấp cổng thanh toán này đang cố gắng tìm ra cách đơn giản hóa các quy trình thanh toán toàn cầu, thì các doanh nghiệp lại mắc kẹt với những gì họ có. Một phần trong đó là có bí quyết hoặc tài năng để tích hợp càng nhiều trang phục xử lý thanh toán mà họ cần. Điều này có nghĩa là các kỹ năng viết mã, điều làm cho các hướng dẫn này trở thành một bước thiết yếu để đạt được điều đó. Mặc dù điều đó có vẻ cấm đối với một số người, nhưng những người viết mã để kiếm sống có thể nhận được sự trợ giúp đáng kể từ tài nguyên viết mã này

hướng dẫn 1. Tích hợp cổng thanh toán trong PHP

Chúng tôi sẽ sử dụng Stripe làm ví dụ để chỉ cho chúng tôi cách tích hợp cổng thanh toán trong PHP. Với cổng thanh toán của Stripe, bạn có thể dễ dàng chấp nhận thẻ tín dụng trực tiếp trên trang web của mình bằng cách tích hợp hệ thống thanh toán và cho phép thanh toán

Để tích hợp cổng thanh toán Stripe trong trang web dựa trên PHP của bạn, bạn cần triển khai các chức năng sau

  1. Chuẩn bị biểu mẫu HTML để thu thập thông tin thẻ tín dụng
  2. Tạo mã thông báo Stripe để truyền thông tin thẻ một cách an toàn
  3. Gửi biểu mẫu với chi tiết thẻ
  4. Xác minh thẻ và xử lý các khoản phí
  5. Chèn chi tiết thanh toán vào cơ sở dữ liệu để hiển thị trạng thái cho người dùng

Kiểm tra dữ liệu khóa API Stripe

Trước khi tích hợp cổng thanh toán Stripe của bạn hoạt động, bạn cần kiểm tra kỹ lưỡng. Để kiểm tra quy trình thanh toán bằng thẻ tín dụng, bạn cần KIỂM TRA Khóa API để tạo trong tài khoản Stripe của mình

  1. Đăng nhập vào tài khoản Stripe của bạn và điều hướng đến trang API
  2. Trong phần DỮ LIỆU KIỂM TRA, bạn sẽ thấy các khóa API được liệt kê. Để hiển thị Khóa bí mật, hãy nhấp vào nút Hiển thị mã thông báo khóa kiểm tra

Thu thập khóa Có thể xuất bản và khóa Bí mật để sử dụng sau này trong tập lệnh

Bạn có thể cần xem cấu trúc tệp trước khi tiếp tục

Tạo bảng cơ sở dữ liệu

Tiếp theo, bạn sẽ cần tạo một bảng trong cơ sở dữ liệu để lưu chi tiết giao dịch. Phần tiếp theo là SQL tạo bảng đơn hàng trong cơ sở dữ liệu MySQL

CREATE TABLE `orders` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `card_num` bigint(20) NOT NULL,
 `card_cvc` int(5) NOT NULL,
 `card_exp_month` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
 `card_exp_year` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
 `item_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `item_number` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
 `item_price` float(10,2) NOT NULL,
 `item_price_currency` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'usd',
 `paid_amount` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
 `paid_amount_currency` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
 `txn_id` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `payment_status` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
 `created` datetime NOT NULL,
 `modified` datetime NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Cấu hình cơ sở dữ liệu (dbConfig. php)

Bạn sẽ cần dbConfig. php để kết nối và chọn cơ sở dữ liệu. Chỉ định máy chủ cơ sở dữ liệu ($dbHost), tên người dùng ($dbUsername), mật khẩu ($dbPassword) và tên ($dbName) sau thông tin đăng nhập cơ sở dữ liệu của bạn

connect_errno) {
    printf("Connect failed: %s\n", $db->connect_error);
    exit();
}

Biểu mẫu thanh toán sọc (chỉ mục. php)

JavaScript

Bao gồm thư viện Stripe JavaScript để gửi thông tin nhạy cảm đến Stripe một cách an toàn trực tiếp từ trình duyệt

Thư viện jQuery không cần thiết để sử dụng Stripe;

Trong mã JavaScript, hãy đặt khóa API có thể xuất bản để xác định trang web của bạn thành Stripe. Hàm sọcResponseHandler() tạo mã thông báo sử dụng một lần và chèn trường mã thông báo vào biểu mẫu thanh toán HTML

HTML

Biểu mẫu HTML sau đây thu thập thông tin người dùng (tên và email) và chi tiết thẻ (Số thẻ, Ngày hết hạn và Số CVC. ). Để tiếp tục xử lý thanh toán bằng thẻ, biểu mẫu được gửi tới tập lệnh PHP (gửi. php)

Charge $55 with Stripe






    

Name

Email

Card Number

CVC

Expiration (MM/YYYY) /

Submit Payment

Thư viện sọc PHP

Tiếp theo, chúng ta sẽ sử dụng thư viện Stripe PHP để xử lý thanh toán bằng thẻ. Thư viện có sẵn ở đây

Xác thực và xử lý thanh toán (gửi. php)

Trong tệp này, chi tiết thẻ đã gửi được xác thực và khoản phí được xử lý bằng thư viện Stripe PHP

  1. Nhận mã thông báo, chi tiết thẻ và thông tin người dùng từ biểu mẫu đã gửi.
    Bao gồm thư viện Stripe PHP.
  2. Đặt khóa có thể xuất bản và khóa bí mật mà chúng tôi đã tạo trong phần Dữ liệu API kiểm tra sọc
  3. Thêm khách hàng vào Stripe bằng email người dùng và mã thông báo Stripe
  4. Chỉ định chi tiết sản phẩm và tạo khoản phí cho thẻ tín dụng hoặc thẻ ghi nợ
  5. Truy xuất các chi tiết phí đã được tạo trước đó
  6. Nếu tính phí thành công, chi tiết đơn hàng và giao dịch sẽ được đưa vào cơ sở dữ liệu. Nếu không, một thông báo lỗi sẽ được hiển thị

//check whether stripe token is not empty
if(!empty($_POST['stripeToken'])){
    //get token, card and user info from the form
    $token  = $_POST['stripeToken'];
    $name = $_POST['name'];
    $email = $_POST['email'];
    $card_num = $_POST['card_num'];
    $card_cvc = $_POST['cvc'];
    $card_exp_month = $_POST['exp_month'];
    $card_exp_year = $_POST['exp_year'];
    
    //include Stripe PHP library
    require_once('stripe-php/init.php');
    
    //set api key
    $stripe = array(
      "secret_key"      => "Your_API_Secret_Key",
      "publishable_key" => "Your_API_Publishable_Key"
    );
    
    \Stripe\Stripe::setApiKey($stripe['secret_key']);
    
    //add customer to stripe
    $customer = \Stripe\Customer::create(array(
        'email' => $email,
        'source'  => $token
    ));
    
    //item information
    $itemName = "Premium Script CodexWorld";
    $itemNumber = "PS123456";
    $itemPrice = 55;
    $currency = "usd";
    $orderID = "SKA92712382139";
    
    //charge a credit or a debit card
    $charge = \Stripe\Charge::create(array(
        'customer' => $customer->id,
        'amount'   => $itemPrice,
        'currency' => $currency,
        'description' => $itemName,
        'metadata' => array(
            'order_id' => $orderID
        )
    ));
    
    //retrieve charge details
    $chargeJson = $charge->jsonSerialize();

    //check whether the charge is successful
    if($chargeJson['amount_refunded'] == 0 && empty($chargeJson
['failure_code']) && $chargeJson['paid'] == 1 && $chargeJson['captured'] == 1){
        //order details 
        $amount = $chargeJson['amount'];
        $balance_transaction = $chargeJson['balance_transaction'];
        $currency = $chargeJson['currency'];
        $status = $chargeJson['status'];
        $date = date("Y-m-d H:i:s");
        
        //include database config file
        include_once 'dbConfig.php';
        
        //insert tansaction data into the database
        $sql = 
"INSERT INTO orders(name,email,card_num,card_cvc,card_exp_month,card_exp_year,
item_name,item_number,item_price,item_price_currency,paid_amount,
paid_amount_currency,txn_id,payment_status,created,modified) VALUES
('".$name."','".$email."','".$card_num."','".$card_cvc."','".$card_exp_month."',
'".$card_exp_year."','".$itemName."','".$itemNumber."','".$itemPrice."','".$currency."',
'".$amount."','".$currency."','".$balance_transaction."'
,'".$status."','".$date."','".$date."')";
        $insert = $db->query($sql);
        $last_insert_id = $db->insert_id;
        
        //if order inserted successfully
        if($last_insert_id && $status == 'succeeded'){
            $statusMsg = "

The transaction was successful.

Order ID: {$last_insert_id}

";         }else{             $statusMsg = "Transaction has been failed";         }     }else{         $statusMsg = "Transaction has been failed";     } }else{     $statusMsg = "Form submission error......."; } //show success or error message echo $statusMsg;

Chi tiết thẻ kiểm tra

Để kiểm tra quy trình thanh toán, bạn cần kiểm tra chi tiết thẻ. Sử dụng bất kỳ số thẻ kiểm tra nào sau đây, ngày hết hạn hợp lệ trong tương lai và bất kỳ số CVC ngẫu nhiên nào để kiểm tra tích hợp cổng thanh toán Stripe trong PHP

  • 378282246310005 American Express
  • 6011111111111117 Khám phá
  • 4242424242424242 Thị thực
  • 4000056655665556 Thị thực (ghi nợ)
  • 5555555555554444 Mastercard
  • 5200828282828210 Mastercard (ghi nợ)

Ra mắt cổng thanh toán Stripe trực tiếp

Sau khi kiểm tra xong và quy trình thanh toán hoạt động bình thường, hãy làm theo các bước bên dưới để cổng thanh toán Stripe hoạt động

  1. Đăng nhập vào tài khoản Stripe của bạn và điều hướng đến trang API
  2. Thu thập các khóa API (Khóa có thể xuất bản và Khóa bí mật) từ Dữ liệu trực tiếp
  3. Thay đổi các khóa API Kiểm tra (Khóa có thể xuất bản và Khóa bí mật) bằng các khóa API Trực tiếp (Khóa có thể xuất bản và Khóa bí mật) trong tập lệnh

Nguồn. Codexworld

hướng dẫn 2. Tích hợp cổng thanh toán trong Java

Để chỉ cho chúng tôi cách tích hợp cổng thanh toán trong Java, chúng tôi sẽ sử dụng PayPal để minh họa. PayPal là một trong những nền tảng hàng đầu để thực hiện thanh toán và chuyển tiền qua internet. Như với hầu hết các ứng dụng SaaS, nó cung cấp API để doanh nghiệp có thể dễ dàng tạo điều kiện thanh toán hoặc chuyển giao dịch quan trọng đối với hoạt động của họ

Như với Stripe, chúng tôi cần có tài khoản PayPal để tiếp tục

Tài khoản cho người bán và người mua

Chúng tôi sẽ cần hai tài khoản sandbox để thử nghiệm. Một dành cho người bán và một dành cho người mua

Tài khoản hộp cát là một loại tài khoản giả do PayPal cung cấp cho mục đích thử nghiệm. Bây giờ chúng ta đã sẵn sàng để đăng nhập vào trang web dành cho nhà phát triển của Paypal và tạo một tài khoản tại đây

Để xác minh việc tạo tài khoản sandbox, hãy nhấp vào đây

Đối với phần này, bạn phải sử dụng API PayPal NVP, liên kết các giá trị trường yêu cầu và phản hồi của thư. Thông báo yêu cầu được bắt đầu bởi khách hàng, đó là trang web của bạn, trong khi thông báo phản hồi sẽ đến từ PayPal

PayPal có thêm thông tin về NVM tại đây

Thu thập thông tin đăng nhập API cho tài khoản người bán

Trước tiên, chúng tôi cần thông tin đăng nhập API cho Tài khoản người bán

  1. Tên người dùng API
  2. Mật khẩu API
  3. Chữ ký

Để thực hiện điều này, hãy làm như sau

  1. Đăng nhập vào tài khoản người bán
  2. Trên Trang chủ, nhấp vào -> Hồ sơ
  3. nhấp vào -> Yêu cầu thông tin đăng nhập API
  4. nhấp vào -> Xem chữ ký API

Tiếp theo chúng ta tiến hành tích hợp Tài khoản người bán với Java Web Application. Để làm điều này, hãy mở cấu hình. tệp thuộc tính và đặt thông tin đăng nhập API của người bán

PP_USER_SANDBOX =

PP_PASSWORD_SANDBOX =

PP_SIGNATURE_SANDBOX =

HỘP CÁT_FLAG. Giữ đúng khi làm việc với tài khoản sandbox/demo;

Sao chép tất cả các tệp và thư mục trong gói “PaypalCredit” đã tải xuống vào cùng một vị trí nơi bạn có trang giỏ hàng của mình

Chạy tệp chỉ mục của nó hoặc bạn có thể tạo tệp chỉ mục của riêng mình với tên mong muốn nếu bạn muốn tích hợp nó với ứng dụng web của mình. Nếu bạn muốn tạo tệp chỉ mục của riêng mình, hãy sao chép phần sau

đến trang giỏ hàng của bạn

  • Nhập các tham số đầu vào bổ sung dựa trên giỏ hàng của bạn. Để có danh sách đầy đủ tất cả các tham số, hãy truy cập trang PayPal này
  • Bây giờ, hãy chạy tệp chỉ mục của riêng bạn hoặc bất kỳ tên nào bạn đã đặt cho tệp chỉ mục, nhấp vào nút “Tín dụng Paypal” và hoàn thành quy trình bằng cách nhập thông tin đăng nhập của người mua (ID email, mật khẩu) bất cứ khi nào được nhắc cho họ

Nguồn. Technetexperts

Hướng dẫn 3. Tích hợp cổng thanh toán trong C#

Tiếp theo, chúng ta chuyển sang phần tích hợp cổng thanh toán trong C# qua asp. net. Để tiến hành cách tích hợp cổng thanh toán trong C#, chúng tôi sẽ quay lại Stripe để minh họa các quy trình

Bạn có thể tích hợp ứng dụng khách Stripe hoặc phía máy chủ. Ở đây chúng tôi sẽ hướng dẫn bạn cách triển khai tích hợp phía máy chủ

Bước 1

Đăng ký trên https. //bảng điều khiển. vạch sọc. com/đăng ký với Email, Tên và Mật khẩu

Bước 2

Cài đặt thư viện Stripe trong Visual Project của bạn bằng Install-Package Stripe. net. Nó sẽ tải xuống Stripe. net. dll và thêm một tham chiếu đến dự án của bạn

Bước 3

Thêm không gian tên (sử dụng Stripe. Cơ sở hạ tầng;) vào Lớp mà bạn muốn triển khai cổng thanh toán

Bước 4

Để thực hiện, bạn cần chơi với một số lớp. Vui lòng làm theo từng bước để thực hiện thanh toán

Bước 5

Để kết nối với Stripe, bạn cần có khóa Publishable. Lấy nó từ đây

Bước 6

Đặt khóa API với chức năng này

Vạch sọc. SọcCấu Hình. SetApiKey(“pk_test_FyPZYPyqf8jU6IdG2DONgudS”);

Bước 7

Tạo đối tượng Thẻ tín dụng để tạo Token. Mã thông báo đó sẽ được đặt thành Đối tượng khách hàng trong quá trình tạo Khách hàng

Vạch sọc. Thẻ CreditCardOptions = Stripe mới. CreditCardOptions();

Thẻ. Tên = tParams. CardOwnerFirstName + ” “ + tParams. CardOwnerLastName;

Thẻ. Số = tParams. Số thẻ;

Thẻ. ExpYear = tParams. Năm hết hạn;

Thẻ. ExpMonth = tParams. Tháng hết hạn;

Thẻ. Cvc = tParam. CVV2;

//Gán thẻ cho đối tượng Token và tạo Token

Vạch sọc. Mã thông báo TokenCreateOptions = Sọc mới. TokenCreateOptions();

mã thông báo. Thẻ = thẻ;

Vạch sọc. TokenService serviceToken = sọc mới. Dịch vụ mã thông báo();

Vạch sọc. Mã thông báo newToken = serviceToken. Tạo (mã thông báo);

Bước 8

Gán TokenID cho Đối tượng khách hàng để tại thời điểm tạo khách hàng, thẻ sẽ được tạo và liên kết với Khách hàng

//Tạo đối tượng khách hàng và đăng ký nó trên Stripe
Stripe. CustomerCreateOptions myCustomer = Sọc mới. CustomerCreateOptions();
MyCustomer. Email = tParam. Buyer_Email;
MyCustomer. Mã nguồn = mã thông báo mới. Là;
Dịch vụ khách hàng = sọc mới. CustomerService();
Sọc. sọc khách hàng Khách hàng = dịch vụ khách hàng. Tạo(khách hàng của tôi);

Bước 9

Tạo đối tượng phí. Đối tượng tính phí là đối tượng thực tế sẽ thực hiện thanh toán

var tùy chọn = Sọc mới. ChargeCreateOptions {

Số tiền = Quy đổi. ToInt32(tParams. Số lượng),

Tiền tệ = tParams. Id tiền tệ == 1? . "ĐÔ LA MỸ",

Email biên lai = tParams. Người mua_Email,

CustomerId = sọcKhách hàng. ID,

;

var dịch vụ = Sọc mới. ChargeService();

Bước 10

Sạc điện. Trạng thái sẽ trả về trạng thái

Bước 11

Bây giờ bạn có thể kiểm tra Khách hàng đã tạo từ đây

Làm một tấm séc khác, lần này là để thanh toán, tại đây

Nguồn. góc chữ C

Tìm hiểu thêm về tích hợp cổng thanh toán

Mặc dù chúng tôi đã hướng dẫn bạn cách tích hợp cổng thanh toán bằng PHP, Java và C#, nhưng bạn sẽ làm tốt việc mở rộng hiểu biết của mình về các phương pháp hay nhất để triển khai cổng thanh toán để có nền tảng vững chắc hơn. Bài viết sẽ hướng dẫn bạn một số vấn đề quan trọng nhất, như tiền tệ và hỗ trợ quốc gia

Tại Hoa Kỳ, bạn sẽ thấy phần tổng hợp các giải pháp cổng thanh toán hàng đầu của chúng tôi rất hữu ích để xác định tỷ lệ và loại dịch vụ phù hợp với doanh nghiệp của bạn

Hiện tại, chúng tôi chọn 2Checkout là lựa chọn hàng đầu cho danh mục này. Điều này là nhờ vào giao diện đơn giản và các chức năng mạnh mẽ mà cả người dùng am hiểu công nghệ và không thích công nghệ đều sẽ thích thú khi sử dụng. Nếu bạn muốn biết liệu giải pháp này có phù hợp với hoạt động của mình hay không, bạn có thể đăng ký dùng thử miễn phí 2Checkout

Làm cách nào để tạo một hệ thống thanh toán bằng PHP?

Cách tích hợp cổng thanh toán với cửa hàng trực tuyến của bạn bằng PHP .
Bước 1. Tạo biểu mẫu HTML để thu thập thông tin nguồn thanh toán của khách hàng. .
Bước 2. Tạo mã thông báo để truyền dữ liệu được mã hóa một cách an toàn. .
Bước 3. Cho phép gửi biểu mẫu cùng với thông tin thanh toán. .
Bước 4. Xác minh và xác thực các khoản phí

Có bao nhiêu loại cổng thanh toán trong PHP?

4 loại cổng thanh toán. Cổng thanh toán tự lưu trữ. Cổng thanh toán được lưu trữ trên API. Cổng tích hợp ngân hàng địa phương.

Làm cách nào để thiết lập tích hợp PayPal với PHP mysql?

Tích hợp PayPal trong trang web PHP .
Bước – 1 Tạo tài khoản PayPal và nhận thông tin xác thực Sandbox
Bước – 2 Tạo tệp PHP để thêm Code
Bước – 3 Tạo thanh toán. tập tin php
Bước – 4 Tạo thanh toán_form. tập tin php