Kiểm thử cổng thanh toán - Hướng dẫn với checklist

Payment processor - Bộ xử lý thanh toán là gì?

Theo Wikipedia, "Payment processor là một công ty (thường là bên thứ ba) được chỉ định bởi bên bán hàng để xử lý các giao dịch từ nhiều kênh khác nhau như thẻ tín dụng và thẻ ghi nợ cho các ngân hàng mà bên bán hàng yêu cầu. Bộ xử lý thanh toán sẽ kiểm tra các chi tiết nhận được bằng cách chuyển tiếp chúng cho ngân hàng phát hành thẻ để xác minh và cũng thực hiện một loạt các biện pháp chống gian lận đối với giao dịch. "

Một số Cổng thanh toán thông dụng là Braintree, Authorize.net, PayPal, Bluepay, Citrus Thanh toán vv

Có rất nhiều tài liệu trực tuyến và ngoại tuyến có sẵn về cổng thanh toán và thuật ngữ liên quan.

1. Payment Gateway Terminology - Thuật ngữ cổng thanh toán

1) Merchant - Người bán: Là cá nhân hoặc công ty bán sản phẩm hoặc dịch vụ. Flipkart, Amazon, eBay là một số ví dụ về merchant.

2) Credit Card - Thẻ tín dụng: Là một chiếc thẻ nhựa có thể được sử dụng để mua sản phẩm hoặc dịch vụ thông qua tài khoản tín dụng. Thẻ này có số thẻ gồm 16 số, ngày hết hạn, hình ba chiều, dải từ, bảng chữ ký và số Số xác nhận thẻ (CVV). Mặt trước thẻ:

Mặt sau thẻ:

**3) Acquiring bank - Ngân hàng thu nhận **: Ngân hàng thương nhân là một tổ chức tài chính duy trì tài khoản ngân hàng của người bán và cho phép người bán chấp nhận và xử lý giao dịch ghi nợ và / hoặc thẻ tín dụng trên cửa hàng của họ.

4) Issuing Bank - Ngân hàng phát hành: Là tổ chức tài chính phát hành thẻ ghi nợ hoặc thẻ tín dụng của khách hàng. Bất cứ khi nào khách hàng sử dụng thẻ tín dụng hoặc thẻ ghi nợ để mua hàng, ngân hàng phát hành chấp nhận hoặc từ chối giao dịch dựa trên tình trạng tài khoản của chủ thẻ và chuyển thông tin đó đến Ngân hàng nhận.

Ví dụ: Giao dịch sẽ bị từ chối nếu ngày hết hạn của thẻ không chính xác hoặc nếu số tiền mua nhiều hơn giới hạn tín dụng thẻ, v.v ...

5) Transaction - Giao dịch: Kết thúc để kết thúc quá trình thông qua đó bên bán nhận được tiền cho một giao dịch với khách hàng.

6) Authorization - Ủy quyền: Được yêu cầu khi khách hàng mua hàng. Giấy phép này được cung cấp bởi ngân hàng phát hành của khách hàng và xác nhận tính hợp lệ của chủ thẻ, khả năng thanh toán ... Sau khi hoàn thành, số tiền được giữ và số dư được khấu trừ từ giới hạn tín dụng của khách hàng nhưng chưa được chuyển sang tài khoản người bán.

**7) Capture: ** Capture Là tính chất của một giao dịch thành công với số tiền thanh toán được chấp nhận giao dịch từ đơn vị phát hành. Trong hành động này, người bán thu thập thông tin thanh toán của khách hàng có liên quan và gửi yêu cầu thanh toán / cho công ty thanh toán. Công ty thanh toán sử dụng thông tin này để bắt đầu chuyển khoản giữa tài khoản thẻ của khách hàng và tài khoản ngân hàng của người bán.

2. Transaction flow

Sơ đồ dòng sau đây tóm tắt flow hoàn chỉnh từ thời điểm khách hàng đặt hàng cho đến khi đơn hàng thành công hoặc bị từ chối.

Nếu khách hàng muốn hủy đơn đặt hàng, sau đây là flow hủy đơn hàng:

Sự khác biệt giữa void - vô hiệu và refund - trả lại phụ thuộc vào việc liệu giao dịch đó đã thanh toán thành công hay không.

Một khoản thanh toán chưa thanh toán có thể bị hủy, có nghĩa là các khoản tiền giữ được ghi có trở lại tài khoản chủ thẻ. Nếu một giao dịch đã được thanh toán hoặc hold tiền, thì khoản tiền sẽ được hoàn có nghĩa là tiền được lấy từ tài khoản của người bán và được ghi có vào tài khoản của chủ thẻ.

3. Các loại kiểm thử bắt buộc

Tùy thuộc vào sự lựa chọn của processor payment và yêu cầu về sản phẩm / ứng dụng, bạn có thể được yêu cầu thực hiện các loại kiểm tra sau

  • Kiểm thử chức năng - Kiểm tra chức năng là cần thiết cho các cổng thanh toán mới, ít chắc chắn để đảm bảo rằng ứng dụng hoạt động đúng, nghĩa là nó xử lý các đơn đặt hàng, tính toán, thuế, vv chính xác. Đối với processor payment đã chắc chắn hơn, loại kiểm thử này có thể không bắt buộc.
  • Kiểm thử tích hợp - Kiểm thử tích hợp là rất quan trọng khi tích hợp với một cổng thanh toán. Là một tester, bạn cần xác minh rằng việc tích hợp trang web / cửa hàng / ứng dụng trực tuyến của bạn đang hoạt động tốt với các cổng thanh toán được chọn. Là một tester, bạn cần phải xác minh toàn bộ luồng giao dịch:
    • Đặt hàng
    • Kiểm tra xem tiền đã nhận được trong tài khoản người bán
    • Xác minh xem giao dịch có thể được hoàn trả hay hủy bỏ thành công không
  • Kiểm thử hiệu năng - Đó là loại kiểm thử cần thiết để kiểm tra độ chịu tải của trang web / cửa hàng / ứng dụng trực tuyến. Bộ xử lý thanh toán không nên thất bại nếu nhiều người dùng đang cố gắng hoàn thành các giao dịch cùng một lúc.
  • Kiểm tra bảo mật - Trong quá trình giao dịch, khách hàng sẽ cung cấp các thông tin nhạy cảm như số thẻ tín dụng, số CVV vv Điều rất quan trọng là cần phải đảm bảo rằng tất cả thông tin nhạy cảm được truyền đi sau khi mã hóa và an toàn.

4. Một số tip hữu ích

  1. Tìm hiểu xem có thể sử dụng môi trường sandbox miễn phí của Payment gateway cho mục đích dùng thử hay không. Việc có sẵn một môi trường giả lập sẽ rất hữu ích và cung cấp cho team có thêm nhiều lựa chọn để tùy chỉnh và kiểm thử thêm công cụ hiện tại.
  2. Đảm bảo giao dịch được kiểm tra trong suốt quá trình. Trong các dự án của chúng tôi, chúng tôi đã kiểm tra và tìm ra nhiều lỗi liên quan đến việc thu thập dữ liệu và luồng dữ liệu từ ứng dụng đến cổng thanh toán. Một số lỗi thường gặp như:
  • Tên khách hàng (người mua hàng) không được lấy đúng
  • Ngày hết hạn thẻ tín dụng của khách hàng bị lấy không chính xác khiến các ngân hàng phát hành bị từ chối thanh toán vì thông tin thẻ tín dụng không chính xác.
  • Giao dịch trùng lặp hiển thị trong Payment Processor.
  1. Nghiên cứu về các giới hạn của môi trường giả lập Payment gateway Ví dụ: Authorize.net chỉ hỗ trợ một đơn vị tiền tệ cho mỗi môi trường, nên nếu muốn test trên nhiền đồng tiền, ta cần phải thiết lập nhiều môi trường khác nhau. Vì lý do đó, ta sẽ không bao giờ test được thực tế hệ thống sẽ phản ứng như thế nào với những giao dịch có quy đổi tiền tệ nếu sử dụng lài khoản Live Authorize.net
  2. Nếu thanh toán không thành công trong quá trình giao dịch vì bất kỳ lý do nào, cần đưa ra một thông báo phù hợp cho khách hàng. Bất kỳ thông báo lỗi nào mang tính kỹ thuật như 'Object not set to instance' hoặc '404 error' có thể gây nhầm lẫn cho khách hàng và ảnh hưởng đến trải nghiệm người dùng. Một thông báo chung chung kiểu như "Có sự cố sảy ra trong giao dịch, xin hay liên hệ đến số 1-800-800-8000" cũng là một ý hay.
  3. Với mục đích verify sau khi release sản phẩm, phần mềm client cần được tạo một tài khoản live payment processor, cài đặt Merchant ID... Tùy thuộc vào payment processor sử dụng, có thể mất từ 2 ngày đến vài tuần để cài đặt một tài khoản. Việc này nên được thông báo bởi project manager đến khách hàng về khoảng thời gian cần thiết để cài đặt tài khoản trước khi application và phần tích hợp payment processor có thể sử dụng được.

5. Checklist và Testcase kiểm tra cổng thanh toán

Giống như bất kỳ ứng dụng nào khác, kiểm thử payment processor liên quan đến việc lập kế hoạch kiểm thử phù hợp.

Checklist sau có thể hữu ích cho tester và có thể được sử dụng làm tài liệu tham khảo:

  1. Thiết lập payment processor sandbox (Sandbox là một môi trường thử nghiệm khép kín, được xây dựng để hoạt động tương tự môi trường sử dụng ngoài thực tế. Tại đây có thể bắt đầu xây dựng và theo dõi quá trình hoạt động của ứng dụng mà không ảnh hưởng tới bất kì tài khoản thanh toán thực tế nào. Môi trường này sẽ hỗ trợ cho người phát triển phần mềm tiếp cận, làm thử và kiểm tra ứng dụng mà không làm ảnh hưởng đến bất kỳ đối tượng nào trong thực tế. Để từ đó, họ đánh giá, so sánh và quyết định lựa chọn dịch vụ mà họ nên tích hợp khi triển khai thực ứng dụng thực sự)

  2. Thu thập số thẻ loại tín dụng dùng để thử nghiệm với mục đích kiểm tra các loại thẻ tín dụng khác nhau. Ví dụ, thông tin cho bộ xử lý thanh toán Braintree có thể được tìm thấy tại Braintree payments.

  3. Xác minh hành vi của ứng dụng khi giao dịch thành công.

  4. Sau khi giao dịch thành công, hãy xác minh nếu cổng thanh toán trả về ứng dụng của bạn để hiển thị một số thông báo giao dịch / xác nhận thành công.

  5. Xác minh rằng khách hàng nhận được một số thông báo xác nhận giao dịch như Email xác nhận đặt hàng, v.v ... nếu giao dịch thành công.

  6. Kiểm tra những gì sẽ xảy ra nếu việc thanh toán thất bại hoặc bộ xử lý thanh toán ngừng phản hồi thì có bất kỳ thông báo lỗi nào không?

  7. Xác minh hành vi ứng dụng với trình chặn cửa sổ bật lên và tắt của trình duyệt. Điều này có thể hữu ích nếu bất kỳ thông báo xác nhận nào đang được hiển thị trong cửa sổ bật lên.

  8. Xác minh các thiết lập bảo mật và phòng ngừa gian lận khác nhau.

Ví dụ: nếu thông tin thanh toán của khách hàng không khớp với địa chỉ được cung cấp cho ngân hàng phát hành - bất kỳ sự không phù hợp nào sẽ dẫn đến việc bị từ chối giao dịch.

  1. Xác minh các thông tin giao dịch trong cơ sở dữ liệu nếu tester có quyền truy cập vào cơ sở dữ liệu ứng dụng.

  2. Kiểm tra những gì sẽ xảy ra khi phiên truy cập của khách hàng hết hạn.

  3. Kiểm tra bảng điều khiển trong suốt quá trình giao dịch và báo cáo bất kỳ lỗi điều khiển được quan sát thấy.

  4. Xác minh rằng giao dịch đó được thực hiện trên một kênh an toàn.

Ví dụ: các trang thanh toán có thể là HTTPS so với phần còn lại của trang web là các trang HTTP.

  1. Xác minh rằng loại tiền tệ của bộ xử lý thanh toán được thiết lập chính xác.

Ví dụ: nếu ứng dụng / trang web là một công ty / nhà bán lẻ của Canada, bộ xử lý thanh toán phải được thiết lập để chấp nhận đồng tiền CAD.

  1. Nếu các ứng dụng có nhiều lựa chọn thanh toán như thẻ tín dụng và PayPal cùng nhau, cả hai lựa chọn thanh toán cần phải được kiểm tra riêng lẻ từ đầu đến cuối.

  2. Xác minh rằng số tiền hoàn lại hoặc số tiền vô hiệu (từ cổng quản trị bộ xử lý thanh toán) giống như số tiền giao dịch. Trong mọi trường hợp, số tiền hoàn lại / số tiền còn thiếu sẽ vượt quá số tiền giao dịch.

6. Setting up Sandbox: Ví dụ Braintree Payment

  1. Truy cập vào Braintree website.
  2. Click vào button ‘Try the sandbox’.

  1. Bạn sẽ được chuyển hướng đến trang web sandbox Braintree. Hãy điền tất cả các thông tin cần thiết và đăng ký sandbox.

  1. Bạn sẽ nhận được một email xác nhận tài khoản.

  1. Thiết lập password, Nhấp vào nút 'Agree & Create your account'.

  1. Bạn sẽ được đăng nhập và chuyển hướng đến trang Braintree Admin

  1. Lưu ý các Sandbox keys và sử dụng chúng trong ứng dụng của bạn để tích hợp với sandbox Braintree này.

  1. Sau khi tích hợp xong, sandbox đã sẵn sàng để sử dụng. Nếu bạn cần cập nhật cài đặt sandbox, bạn có thể sử dụng trình đơn cài đặt.

Tùy chọn trình đơn cài đặt thông dụng:

7.Kết luận

Bộ xử lý thanh toán là một thành phần rất quan trọng đối với bất kỳ ứng dụng thương mại điện tử nào được thiết kế để cho phép thanh toán từ phía khách hàng. Vì vậy nó là điều cần thiết để thử nghiệm thành phần một cách triệt để. Bất kỳ trường hợp nào bị bỏ sót cũng có thể ảnh hưởng đến doanh thu / giao dịch của người bán và ảnh hưởng tiêu cực đến trải nghiệm người dùng cho khách hàng hoặc người mua.

Tester cần phải chuẩn bị hoặc thiết lập môi trường thử nghiệm (sandbox, thu thập thông tin thẻ tín dụng giả mạo, mã phản hồi vv) và xây dựng chiến lược thử nghiệm - cả cho môi trường Test và môi trường thực tế.

Về tác giả: Bài viết hữu ích này được viết bởi Neha. Cô hiện đang làm việc với vai trò Quản lý đảm bảo chất lượng và chuyên về lãnh đạo và quản lý đội ngũ QA trong và ngoài nước.

Có thắc mắc hoặc muốn chia sẻ kinh nghiệm của bạn về Kiểm tra Cổng thanh toán? Hãy cho chúng tôi biết trong phần comment bên dưới.

Bài viết tham khảo và dịch từ nguồn: http://www.softwaretestinghelp.com/payment-gateway-testing-tutorial/