payment-result

Trang kết quả thanh toán — nơi cổng thanh toán trả trình duyệt của khách về. CHỈ BÁO CÁO, không ghi gì: IPN (máy chủ gọi máy chủ) mới là nguồn quyết định và nó chạy đua với cú chuyển hướng này. Bộ biến giống checkout: không có menus/customer, store chỉ có name.

Ngoài những biến dưới đây, slot này còn nhận toàn bộ biến toàn cục.

Biến của trang

Biến Kiểu Mô tả Từ phiên bản
payment PaymentResult Kết quả thanh toán: state (paid | pending | failed), code, amount. pending nghĩa là chưa thấy xác nhận từ cổng — KHÔNG PHẢI thất bại, và không bao giờ được hiển thị như thất bại. 1.2

Mã đầy đủ

Toàn bộ tệp payment-result.html của bộ giao diện mặc định. Chép về templates/<bộ giao diện của bạn>/payment-result.html rồi sửa theo ý muốn.

{%- comment -%}
  Trang kết quả thanh toán (/thanh-toan/ket-qua).

  CheckoutController::paymentResult cấp: store, nav_categories, payment.
  payment = { state, code, amount } với state ∈ paid | pending | failed.

  ⚠️ CHỈ BÁO CÁO, KHÔNG GHI GÌ. IPN mới là nguồn quyết định và nó chạy đua với
  cú chuyển hướng này, nên `pending` là chuyện bình thường với một giao dịch đã
  thành công — không bao giờ hiển thị nó như một thất bại.
{%- endcomment -%}
{%- assign pr_order = payment.code | default: '' -%}

<div class="container page-content">
  {% if payment.state == 'paid' %}
    <h1 class="page-title">Thanh toán thành công</h1>
    <p>Cảm ơn bạn. Chúng tôi đã nhận được thanh toán
       {% if pr_order != '' %}cho đơn hàng <strong>{{ pr_order }}</strong>{% endif %}.</p>
    <p>Biên nhận đã được gửi tới email của bạn.</p>

  {% elsif payment.state == 'pending' %}
    <h1 class="page-title">Đang xác nhận thanh toán</h1>
    <p>Chúng tôi đang chờ xác nhận từ cổng thanh toán. Việc này thường mất vài giây.</p>
    <p><strong>Vui lòng không thanh toán lại.</strong>
       {% if pr_order != '' %}Đơn hàng <strong>{{ pr_order }}</strong> của bạn{% else %}Đơn hàng của bạn{% endif %}
       sẽ được cập nhật ngay khi có xác nhận.</p>

  {% else %}
    <h1 class="page-title">Thanh toán chưa hoàn tất</h1>
    <p>Giao dịch không thành công hoặc đã bị huỷ. Đơn hàng của bạn vẫn được giữ nguyên.</p>
    <p><a class="btn btn--primary" href="/thanh-toan">Thử thanh toán lại</a></p>
  {% endif %}

  <p><a href="/">Tiếp tục mua sắm</a></p>
</div>