dath-241 / coin-price-be-go

1 stars 0 forks source link

Hiện thực API về Payment #7

Open HienLe2004 opened 2 weeks ago

tacsquang commented 4 days ago

Title: Phát triển tính năng khởi tạo thanh toán nâng cấp VIP qua Momo (VIP Upgrade Payment)

1. Description:

Mục tiêu:

Yêu cầu:

Xử lý yêu cầu:

Xử lý phản hồi:

2. Demo Kết quả:

3. Screenshots:

4. Proposed Solution:

Assignees: @Sangquangnqs & @tacsquang

tacsquang commented 2 days ago

Title: Tạo API IPN cho MoMo

Mô tả vấn đề:

Yêu cầu kỹ thuật:

  1. Phương thức HTTP:

    • Phương thức POST.
    • URL yêu cầu được cung cấp bởi MoMo trong trường ipnUrl.
  2. Header yêu cầu:

    • Content-Type: application/json
  3. Payload (Dữ liệu yêu cầu từ MoMo):

    • partnerCode (String) - Mã tích hợp đối tác.
    • orderId (String) - Mã đơn hàng của đối tác.
    • requestId (String) - requestId của đối tác.
    • amount (Long) - Số tiền thanh toán.
    • orderInfo (String) - Thông tin đơn hàng.
    • orderType (String) - Loại thanh toán, giá trị mặc định là momo_wallet.
    • transId (Long) - Mã giao dịch của MoMo.
    • resultCode (int) - Trạng thái giao dịch của đơn hàng.
    • message (String) - Mô tả trạng thái giao dịch.
    • payType (String) - Hình thức thanh toán (web hoặc qr).
    • responseTime (Long) - Thời gian trả kết quả thanh toán (dạng timestamp).
    • extraData (String) - Thông tin thêm (Mặc định là "").
    • signature (String) - Chữ ký HMAC_SHA256 xác thực tính đúng đắn của dữ liệu.
  4. Cấu trúc Dữ liệu HMAC_SHA256 cho signature:

    • Đảm bảo sử dụng định dạng sau khi sắp xếp các tham số từ A-Z:
      HMAC_SHA256(accessKey=$accessKey&amount=$amount&extraData=$extraData&message=$message&orderId=$orderId&orderInfo=$orderInfo&orderType=$orderType&partnerCode=$partnerCode&payType=$payType&requestId=$requestId&responseTime=$responseTime&resultCode=$resultCode&transId=$transId,secretKey)
  5. Phản hồi API (HTTP Response):

    • HTTP Header: Content-Type: application/json;charset=UTF-8
    • HTTP Status Code: 200
    • HTTP Payload: Thông tin phản hồi từ đối tác, bao gồm:
      • partnerCode (String) - Mã tích hợp.
      • requestId (String) - Định danh request.
      • orderId (String) - Mã đơn hàng của đối tác.
      • resultCode (int) - Trạng thái xử lý giao dịch.
      • message (String) - Mô tả trạng thái.
      • responseTime (Long) - Thời gian trả kết quả (dạng timestamp).
      • extraData (String) - Thông tin thêm.
      • signature (String) - Chữ ký HMAC_SHA256.
  6. Các trạng thái giao dịch:

    • Phản hồi trạng thái giao dịch từ MoMo, cần xử lý các mã lỗi có thể xảy ra trong quá trình thanh toán.

Đầu ra mong muốn:

Lưu ý:

Các bước thực hiện:

Demo:


Tags:

Assignees: @Sangquangnqs & @tacsquang

tacsquang commented 2 days ago

Issue: Kiểm tra trạng thái giao dịch và tra cứu thông tin giao dịch

Mô tả vấn đề:

Yêu cầu kỹ thuật:

1. Phương thức HTTP:

2. Payload (Dữ liệu yêu cầu từ đối tác):

3. Cấu trúc dữ liệu yêu cầu:

Ví dụ yêu cầu:

{
    "partnerCode": "123456",
    "requestId": "1527246504579",
    "orderId": "1527246478428",
    "signature": "13be80957a5ee32107198920fa26aa85a4ca238a29f46e292e8c33dd9186142a",
    "lang": "en"
}

4. Cấu trúc Dữ liệu HMAC_SHA256 cho signature:

Cần tính toán chữ ký HMAC_SHA256 dựa trên chuỗi dữ liệu:

HMAC_SHA256(accessKey=$accessKey&orderId=$orderId&partnerCode=$partnerCode&requestId=$requestId,secretKey)

5. Phản hồi HTTP (Response):


6. Cấu trúc Dữ liệu Response:

Ví dụ phản hồi:

{
    "partnerCode": "123456",
    "requestId": "1527246504579",
    "orderId": "1527246478428",
    "extraData": "",
    "amount": 1000,
    "transId": 1234567890,
    "payType": "qr",
    "resultCode": 0,
    "refundTrans": [],
    "message": "Transaction successful.",
    "responseTime": 1633504902954
}

7. Các bước thực hiện:

Demo:


Tags:

Assignees: @Sangquangnqs & @tacsquang

tacsquang commented 2 days ago

Issue: Xác nhận thanh toán và nâng cấp VIP cho người dùng

Mô tả vấn đề:

1. Phương thức HTTP:

2. Payload (Dữ liệu yêu cầu từ MoMo):

Ví dụ yêu cầu:

{
    "order_id": "123456789",
    "transaction_status": "success"
}

3. Quy trình thực hiện:

3.1. Xác thực yêu cầu:

3.2. Kiểm tra trạng thái giao dịch:

3.3. Cập nhật thông tin đơn hàng:

3.4. Cập nhật VIP level cho người dùng:

3.5. Tạo lại Access Token và Refresh Token:

3.6. Trả kết quả:

4. Phản hồi HTTP (Response):

Ví dụ phản hồi:

{
    "message": "Payment confirmed and VIP level upgraded"
}

5. Error Handling:

6. Kết quả:

Tags:

Assignees: @Sangquangnqs & @tacsquang