Method: disburseFunds

Bắt đầu chuyển tiền giữa công ty xử lý thanh toán và tài khoản của khách hàng. Tổ hợp requestId trong tiêu đề và paymentIntegratorAccountId là khoá xác định giá trị nhận dạng duy nhất và xác định duy nhất giao dịch này. Tất cả các trường hợp thay đổi trên giao dịch này sẽ điền giá trị requestId vào trường disburseFundsRequestId.

Nếu điểm cuối gặp lỗi trong khi xử lý yêu cầu, thì nội dung phản hồi từ điểm cuối này phải thuộc loại ErrorResponse.

Yêu cầu mẫu sẽ có dạng như sau:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

Phản hồi mẫu sẽ có dạng như sau:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

Yêu cầu HTTP

POST https://www.integratorhost.example.com/v1/disburseFunds

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 (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
Các trường
requestHeader

object (RequestHeader)

REQUIRED: Tiêu đề chung cho tất cả các yêu cầu.

paymentIntegratorAccountId

string

REQUIRED: Đây là mã nhận dạng tài khoản của đơn vị tích hợp thanh toán, giúp xác định những ràng buộc theo hợp đồng xung quanh giao dịch này.

transactionDescription

string

BẮT BUỘC: Đây là nội dung mô tả về giao dịch có thể xuất hiện trong bảng sao kê của khách hàng. Đã bản địa hoá sang userLocale trong requestHeader. Bạn có thể thay đổi định dạng này mà không cần thông báo và không bao giờ được phân tích cú pháp.

currencyCode

string

BẮT BUỘC: Mã đơn vị tiền tệ gồm 3 chữ cái theo ISO 4217

amount

string (Int64Value format)

BẮT BUỘC: Số tiền của giao dịch mua, tính theo một phần triệu của đơn vị tiền tệ.

Trường nhóm destinationFopDetails.

destinationFopDetails chỉ có thể là một trong những trạng thái sau đây:

upiDetails

object (UpiDetails)

KHÔNG BẮT BUỘC: Thông tin thanh toán dành riêng cho các phương thức thanh toán có UPI.

Nội dung phản hồi

Đối tượng phản hồi cho phương thức giải ngân.

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 (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
Các trường
responseHeader

object (ResponseHeader)

REQUIRED: Tiêu đề chung cho tất cả các câu trả lời.

paymentIntegratorTransactionId

string

BẮT BUỘC: Giá trị nhận dạng này dành riêng cho trình tích hợp và do trình tích hợp tạo ra. Đây là giá trị nhận dạng mà bên tích hợp biết giao dịch này.

Để thuận tiện, mã nhận dạng này đi kèm trong chi tiết chuyển tiền

disburseFundsResult

object (DisburseFundsResult)

BẮT BUỘC: Kết quả của yêu cầu giải ngân.

UpiDetails

Thông tin chi tiết về tài khoản UPI để thanh toán.

Biểu diễn dưới dạng JSON
{
  "vpa": string
}
Các trường
vpa

string

BẮT BUỘC: Địa chỉ thanh toán ảo (VPA) của người dùng dùng để chuyển tiền qua giao thức UPI. Ví dụ: foo@icici.

DisburseFundsResult

Thông tin về kết quả cuối cùng của khoản giải ngân.

Biểu diễn dưới dạng JSON
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string
  // End of list of possible types for union field FailureDetail.
}
Các trường
disburseFundsResultCode

enum (DisburseFundsResultCode)

REQUIRED: Mã kết quả của khoản thanh toán này.

rawResult

object (RawResult)

KHÔNG BẮT BUỘC: Kết quả thô của khoản giải ngân này. Dùng để hỗ trợ công cụ phân tích rủi ro và xử lý rủi ro của Google. Trong các trường hợp ánh xạ mã từ chối, dữ liệu đôi khi sẽ bị mất. Đơn vị tích hợp có thể chọn cung cấp cho Google một mã thô. Ví dụ: cổng vào thẻ tín dụng (đơn vị tích hợp) có thể sử dụng trường này để thông báo cho Google về mã từ chối chính xác nhận được từ mạng VISA. Trong trường hợp đó, scope sẽ là "visa" và rawCode sẽ là bất cứ điều gì mà mạng VISA trả lại.

Giá trị này là bắt buộc nếu result không phải là SUCCESS.

Trường nhóm FailureDetail.

FailureDetail chỉ có thể là một trong những trạng thái sau đây:

transactionMaxLimit

string (Int64Value format)

KHÔNG BẮT BUỘC: Nếu disburseFundsResultCodeDISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT thì đây là giá trị của giao dịch tối đa được phép. Tính năng này được dùng cho thông báo có cấu trúc dành cho người dùng và phân tích tỷ lệ từ chối.

Số tiền này bằng một phần triệu của currencyCode giống với lệnh gọi phương thức disburseFunds ban đầu.

transactionMinLimit

string (Int64Value format)

KHÔNG BẮT BUỘC: Nếu disburseFundsResultCodeDISBURSEMENT_UNDER_TRANSACTION_LIMIT thì đây là giá trị của giao dịch tối thiểu được phép. Tính năng này được dùng cho thông báo có cấu trúc dành cho người dùng và phân tích tỷ lệ từ chối.

Số tiền này bằng một phần triệu của currencyCode giống với lệnh gọi phương thức disburseFunds ban đầu.

DisburseFundsResultCode

Mã kết quả cho lệnh gọi nhận tiền.

Enum
UNKNOWN_RESULT Đừng bao giờ đặt giá trị mặc định này!
SUCCESS Đã thanh toán thành công.
DISBURSEMENT_UNDER_TRANSACTION_LIMIT Số tiền giải ngân đã yêu cầu không đáp ứng số tiền tối thiểu cho mỗi giao dịch của nhà tích hợp. Nếu mã này được sử dụng, hãy điền số tiền giao dịch tối thiểu vào trường transactionMinLimit để thông báo cho người dùng.
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT Số tiền giải ngân được yêu cầu vượt quá giới hạn tối đa cho mỗi giao dịch của nhà tích hợp. Nếu bạn sử dụng mã này, hãy điền hạn mức giao dịch vào trường transactionMaxLimit để thông báo cho người dùng.
ACCOUNT_CLOSED Tài khoản của người dùng bị giữ với công cụ tích hợp đã bị đóng. Giá trị trả về này sẽ khiến công cụ của người dùng bị đóng bằng Google. Người dùng sẽ buộc phải thêm một phương thức mới.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Tài khoản của người dùng với trình tích hợp đã bị đóng, do có thể sẽ tiếp quản tài khoản này. Giá trị trả về này sẽ khiến công cụ của người dùng bị đóng bằng Google. Người dùng sẽ buộc phải thêm một phương thức mới.
ACCOUNT_CLOSED_FRAUD Tài khoản của người dùng bị giữ với đơn vị tổng hợp đã bị đóng do hành vi gian lận. Giá trị trả về này sẽ khiến công cụ của người dùng bị đóng bằng Google. Người dùng sẽ buộc phải thêm một phương thức mới.
ACCOUNT_ON_HOLD Tài khoản của người dùng đang bị tạm ngưng.

RawResult

Đối tượng kết quả thô.

Biểu diễn dưới dạng JSON
{
  "scope": string,
  "rawCode": string
}
Các trường
scope

string

KHÔNG BẮT BUỘC: Phạm vi của mã thô, có thể để trống.

rawCode

string

BẮT BUỘC: Mã thô từ trình tích hợp hoặc các hệ thống con trong đó.