- Yêu cầu HTTP
- Nội dung yêu cầu
- Nội dung phản hồi
- RefundResultCode
- RefundResultNotificationResultCode
Thông báo cho Google về kết quả hoàn tiền sau khi bạn thực hiện lệnh gọi phương thức refund.
Khoản tiền hoàn lại phải được xử lý đồng bộ trong lệnh gọi phương thức refund, nhưng phương thức này cung cấp cho Google tín hiệu sao lưu nhanh trong trường hợp lệnh gọi đồng bộ không thành công sau khi thực hiện thao tác nhưng trước khi có thể trả về kết quả. Điều này giúp tránh sự chậm trễ do Google lên lịch thử lại vào một thời điểm trong tương lai.
Giá trị refundResult không thay đổi giá trị của refundRequestId này, nên bạn không thể thay đổi giá trị của giá trị này bằng lệnh gọi tiếp theo tới phương thức này.
Nếu điểm cuối gặp lỗi trong khi xử lý yêu cầu, thì phản hồi từ điểm cuối này sẽ thuộc loại .ErrorResponse
Phản hồi cho truy vấn này có thể trống nếu phương thức này không trả về HTTP 200. Nội dung phản hồi bị trống trong trường hợp có nội dung mô tả rõ ràng có thể được dùng để giúp kẻ tấn công hiểu được giá trị nhận dạng tài khoản của đối tác tích hợp thanh toán khác. Trong những trường hợp như vậy, khi khoá ký không khớp, không tìm thấy giá trị nhận dạng của trình tích hợp thanh toán hoặc không xác định được khoá mã hoá, thì phương thức này sẽ trả về một HTTP 404 có phần nội dung trống. Nếu chữ ký của yêu cầu có thể được xác minh thì thông tin bổ sung về lỗi sẽ được trả về trong nội dung phản hồi.ErrorResponse
Yêu cầu mẫu sẽ có dạng như sau:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 1,
"revision": 0
},
"requestId": "HsKv5pvtQKTtz7rdcw1YqE",
"requestTimestamp": "1481855928301"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"refundRequestId": "hH1T32PI86CpKwjuf6oD2r",
"paymentIntegratorRefundId": "invisi/Id::xx__1243",
"refundResult": "SUCCESS"
}
Câu trả lời mẫu sẽ có dạng như sau:
{
"responseHeader": {
"responseTimestamp": "1481855928376"
},
"result": "SUCCESS"
}
Yêu cầu HTTP
POST https://vgw.googleapis.com/secure-serving/gsp/v1/refundResultNotification/:PIAID
Nội dung yêu cầu
Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:
| Biểu diễn dưới dạng JSON |
|---|
{ "requestHeader": { object ( |
| Trường | |
|---|---|
requestHeader |
BẮT BUỘC: Tiêu đề chung cho tất cả các yêu cầu. |
paymentIntegratorAccountId |
BẮT BUỘC: Mã nhận dạng tài khoản của đối tác tích hợp thanh toán nơi hoàn tiền. |
refundRequestId |
BẮT BUỘC: Giá trị nhận dạng duy nhất cho khoản tiền hoàn lại này, do trường |
refundResult |
BẮT BUỘC: Kết quả của khoản tiền hoàn lại này. |
paymentIntegratorRefundId |
BẮT BUỘC: Giá trị nhận dạng này dành riêng cho đơn vị tích hợp và do đối tác tích hợp tạo ra. Đây là giá trị nhận dạng mà đối tác tích hợp biết khoản tiền hoàn lại này. Để thuận tiện, mã nhận dạng này được đưa vào thông tin chuyển tiền |
Nội dung phản hồi
Đối tượng phản hồi cho phương thức refundResultNotification.
Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:
| Biểu diễn dưới dạng JSON |
|---|
{ "responseHeader": { object ( |
| Trường | |
|---|---|
responseHeader |
BẮT BUỘC: Tiêu đề chung cho tất cả câu trả lời. |
result |
BẮT BUỘC: Kết quả của cuộc gọi này. |
RefundResultCode
Mã kết quả duy nhất sẽ được hoàn tiền.
| Enum | |
|---|---|
UNKNOWN_RESULT |
Đừng bao giờ đặt giá trị mặc định này! |
SUCCESS |
Đã hoàn tiền thành công. |
NO_MONEY_LEFT_ON_TRANSACTION |
Không hoàn tiền được, không còn tiền trong giao dịch. Thông thường, lỗi này thể hiện lỗi giữa đơn vị tích hợp và Google. Google sẽ không yêu cầu hoàn lại số tiền lớn hơn ảnh chụp ban đầu. |
ACCOUNT_CLOSED |
Tài khoản do đối tác tích hợp giữ lại đã bị đóng. Việc trả về giá trị này sẽ khiến phương thức của người dùng bị đóng với Google. Người dùng sẽ buộc phải thêm một công cụ mới bằng cách thực hiện lại quy trình liên kết. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
Tài khoản của người dùng với đơn vị tích hợp đã bị đóng và có thể là tài khoản bị chiếm đoạt. Việc trả về giá trị này sẽ khiến phương thức của người dùng bị đóng với Google. Người dùng sẽ buộc phải thêm một công cụ mới bằng cách thực hiện lại quy trình liên kết. |
ACCOUNT_CLOSED_FRAUD |
Tài khoản của người dùng do đối tác tích hợp nắm giữ đã bị đóng do gian lận. Việc trả về giá trị này sẽ khiến phương thức của người dùng bị đóng với Google. Người dùng sẽ buộc phải thêm một công cụ mới bằng cách thực hiện lại quy trình liên kết. |
ACCOUNT_ON_HOLD |
Tài khoản của người dùng hiện đang bị tạm ngưng và không thể chấp nhận yêu cầu hoàn tiền nhưng sau đó tài khoản của người dùng có thể chấp nhận yêu cầu hoàn tiền. Google có thể yêu cầu hoàn tiền một lần nữa trong tương lai, nhưng sẽ yêu cầu hoàn tiền bằng một requestId mới. Vì vậy, yêu cầu này sẽ được coi là đã hoàn tất. |
REFUND_EXCEEDS_MAXIMUM_BALANCE |
Hiện tại, chúng tôi không thể xử lý khoản hoàn tiền vì làm như vậy sẽ khiến số dư của người dùng vượt quá số tiền tối đa cho phép. Google có thể yêu cầu hoàn tiền một lần nữa trong tương lai, nhưng sẽ yêu cầu hoàn tiền bằng một requestId mới. Vì vậy, yêu cầu này sẽ được coi là đã hoàn tất. |
REFUND_WINDOW_EXCEEDED |
Không thể xử lý yêu cầu hoàn tiền vì yêu cầu đã hết thời hạn hoàn tiền cho phép. |
RefundResultNotificationResultCode
Mã kết quả cho phương thức refundResultNotification.
| Enum | |
|---|---|
UNKNOWN_RESULT |
Đừng bao giờ đặt giá trị mặc định này! |
SUCCESS |
Thông báo kết quả hoàn tiền đã thành công. |