Thanh toán bằng Credit Card qua Paypal

I. Direct payment API

Ở bài này tôi sẽ không giới thiệu về Paypal, Credit card là gì cũng như hình thức thanh toán bằng Credit card qua Paypal là như thế nào mà tôi sẽ chỉ cho các bạn biết làm thế nào bạn có thể thanh toán trực tiếp bằng thẻ tín dụng với PayPal API (Paypal gọi giải pháp này là Payments Pro).

Direct Payment API cung cấp cho bạn khả năng xử lý thanh toán thẻ tín dụng (credit card) trực tiếp thông qua Paypal. Khi người mua lựa chọn thanh toán bằng thẻ tín dụng, họ nhập số thẻ và thông tin khác trên website của bạn, sau khi xác nhận đặt hàng và nhấn thanh toán , hệ thống sẽ gọi các phươngthức DoDirectPayment API. Trong vài giây API sẽ trả về một xác nhật rằng giao dịch đã được xử lý. Đối với các giao dịch thẻ tín dụng, người mua sẽ không rời khỏi trang web. Mặc dù PayPal xử lý các đơn đặt hàng nhưng người mua không biết về sự tham gia của PayPal, PayPal thậm chí sẽ không xuất hiện trên bảng sao kê thẻ tín dụng của người mua trong các giao dịch.

Sơ đồ dưới đây cho thấy luồng Direct Payment điển hình:

ECFlow_DCC_new

Các con số trong sơ đồ tương ứng với các bước thực hiện như sau:

Trên các trang thanh toán, cần có các thông tin từ người mua. Thông tin này sẽ được sử dụng trong yêu cầu DoDirectPayment:

AMT : Số tiền giao dịch

CREDITCARDTYPE: Loại thẻ tín dụng

ACCT: Số thẻ

EXPDATE: Ngày hết hạn thẻ

CSC (CVV2 -số bảo mật thẻ, với Visa sẽ là 3 số cuối của số thẻ (ACCT))

FIRSTNAME & LASTNAME: Họ và tên chủ thẻ

– Billing Address (STREET, CITY, STATE, COUNTRYCODE,…): Địa chỉ thanh toán

Trong yêu cầu DoDirectPayment cũng bao gồm cả địa chỉ IP của người mua (IPADDRESS).

Khi các phương thức API DoDirectPayment được gọi, PayPal API server thực hiện các yêu cầu và trả về phản hồi với các thông tin:

– Mã ACK ( success, failure hoặc SuccessWithWarning )

– Số tiền giao dịch

– Mã phản hồi AVS

– Mã phản hồi CSC

– Mã giao dịch Paypal (PayPal transactionID)

– Mã lỗi và thông điệp (nếu có)

– Correlation ID (định danh duy nhất cho các lời gọi API)

Nếu thành công sẽ chuyển đến trang xác nhận đơn hàng (ACK = success). Nếu thất bại sẽ hiển thị thông tin người mua liên quan đến lỗi.

Direct payment API cần những gì?

Để thực hiện thanh toán với API  này bạn cần:

  • API username
  • API password
  • API Signature
  • cURL enabled(nếu bạn sử sung cURL)

Tham  khảo thêm về DoDirectPayment API Operation NVP tại đây

Các bước thiết lập giao dịch thanh toán chi tiết :

1. Xác định số tiền giao dịch bao gồm loại tiền tệ

AMT=amount

CURRENCYCODE=currencyID

2. Xác định hoạt động thanh toán :

PAYMENTACTION=Sale (mặc định)

hoặc

PAYMENTACTION=Authorization

3. Xác định địa chỉ ID của người mua:

IPADDRESS=…

4. Xác định thông tin về thẻ tín dụng (loại thẻ + số thẻ)

CREDITCARDTYPE=… (hoặc MasterCard, Discover,…tùy từng nơi)

ACCT=… (mã thẻ)

EXPDATE=… (ngày hết hạn của thẻ)

CVV2=…(Đối với Visa, MasterCard, và Discover, giá trị là 3 chữ số. Đối với American Express, các giá trị là 4 chữ số)

5. Xác định thông tin chủ thẻ:

FIRSTNAME=…

LASTNAME=…

STREET=…

CITY=…

STATE=…

ZIP=…

COUNTRYCODE=…

II. Test Thanh toán sử dụng NVP (Name-value Pair) và CURL

Để bắt đầu với việc test, tôi tạo 1 tài khoản trên  https://developer.paypal.com/ hoặc https://www.paypal.com

Đăng nhập với tài khoản vừa tạo với trang  https://developer.paypal.com/, Vào mục Sandbox chọn Account, tôi tạo tiếp 2 tài khoản, 1 là buyer và 1 là seller.

Với tài khoản buyer :
Account type: personal

Với tài khoản seller:

Account type: business

Sau đó đăng nhập vào sanbox tôi được:

Buyer:

buyer

 

Và sellerbuyer

 

Sau khi tạo xong tài khoản test tôi tạo 1 file config.php thiết lập các giá trị cho tham số trong yêu cầu của API  :

 

Thông tin trên các bạn có thể xem ở link profile (nhớ là của tài khoản seller) :

link profile

 

API

Tạo file process-credit-card.php

 

Các thông tin người mua trong $request_params xem ở profile của buyer:

info-buyer

Trước khi test file process-credit-card.php bạn vào profile của tài khoản seller kích hoạt Paypal Payments Pro (Account Type > Upgrade to Pro > Enable)

Upgrade to Pro

Ok, giờ chạy file process-credit-card.php. Nếu phản hồi DoDirectPayment API thành công sẽ cho kết quả:

success

Đăng nhập vào tài khoản sandbox, bạn sẽ thấy được kết quả giao dịch thành công như hình ảnh dưới với tài khoản seller đã được cộng thêm số tiền từ tài khoản buyer chuyển sang.

seller_after_transaction

~~~Hết :)~~~

 

You may also like...

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">