Method: disburseFunds

Bắt đầu giao dịch chuyển tiền giữa bên 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á giá trị nhận dạng và xác định duy nhất giao dịch này. Mọi trường hợp đột biến trong giao dịch này đều được đ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"
}

Câu trả lờ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.
}
Trường
requestHeader

object (RequestHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả các yêu cầu.

paymentIntegratorAccountId

string

BẮT BUỘC: Đây là giá trị nhận dạng tài khoản của đối tác tích hợp thanh toán giúp xác định những ràng buộc theo hợp đồng liên quan đến giao dịch này.

transactionDescription

string

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

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 bằng một phần triệu của đơn vị tiền tệ.

Trường kết hợp 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 qua 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)
  }
}
Trường
responseHeader

object (ResponseHeader)

BẮT BUỘC: Tiêu đề chung cho tất 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 đơ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 giao dịch này.

Để thuận tiện, mã nhận dạng này được đưa vào thông tin chuyển tiền

disburseFundsResult

object (DisburseFundsResult)

BẮT BUỘC: Kết quả của lệnh gọi giải ngân.

UpiDetails

Thông tin chi tiết về tài khoản UPI mà bạn sẽ thanh toán.

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

string

BẮT BUỘC: Địa chỉ thanh toán ảo (VPA) của người dùng mà 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 việc 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.
}
Trường
disburseFundsResultCode

enum (DisburseFundsResultCode)

BẮT BUỘC: Mã kết quả của lần giải ngân này.

rawResult

object (RawResult)

KHÔNG BẮT BUỘC: Kết quả thô của việc giải ngân này. Dùng để cung cấp thông tin cho công cụ phân tích và công cụ đánh giá rủi ro của Google. Trong các tình huống liên kết mã từ chối, đôi khi dữ liệu 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 (nhà tích hợp) có thể sử dụng trường này để cung cấp cho Google 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 kỳ thẻ nào mà mạng VISA trả về.

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

Trường kết hợp 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. Số liệu này được sử 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 là micrô của cùng một currencyCode 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. Số liệu này được sử 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 là micrô của cùng một currencyCode với lệnh gọi phương thức disburseFunds ban đầu.

DisburseFundsResultCode

Mã kết quả cho lệnh gọi thanh toá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 được yêu cầu không đáp ứng số tiền tối thiểu trên mỗi giao dịch của đơn vị tích hợp. Nếu mã này được dùng, hãy điền số tiền giao dịch tối thiểu vào trường transactionMinLimit cho mục đích 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á hạn mức tối đa cho mỗi giao dịch của đơn vị tích hợp. Nếu bạn 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 do đối tác tích hợp giữ lại đã bị đóng. Giá trị trả về 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.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER Tài khoản 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. Giá trị trả về 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.
ACCOUNT_CLOSED_FRAUD Tài khoản của người dùng được giữ với đối tác tích hợp đã bị đóng do gian lận. Giá trị trả về 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.
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
}
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ừ nhà tích hợp hoặc các hệ thống phụ trong đó.