- Yêu cầu HTTP
- Nội dung yêu cầu
- Nội dung phản hồi
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
Bắt đầu quá trình chuyển tiền giữa tài khoản của khách hàng được tạm giữ với Google và công ty xử lý thanh toán. 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. Tất cả các trường hợp đột biến trong giao dịch này (hoàn tiền) đều được điền vào giá trị requestId
trong trường captureRequestId
.
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": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ",
"transactionDescription": "Google - Music",
"currencyCode": "INR",
"amount": "728000000",
"captureContext": {}
}
Câu trả lời mẫu sẽ có dạng như sau:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
Yêu cầu HTTP
POST https://www.integratorhost.example.com/v1/capture
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: Đâ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 |
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 |
currencyCode |
BẮT BUỘC: Mã đơn vị tiền tệ gồm 3 chữ cái theo ISO 4217 |
amount |
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ệ. |
captureContext |
BẮT BUỘC: Bối cảnh của ảnh chụp này. |
Trường kết hợp fopDetails . BẮT BUỘC: Thông tin chi tiết về phương thức FOP cho giao dịch Ghi lại này. fopDetails chỉ có thể là một trong những trạng thái sau đây: |
|
googlePaymentToken |
Mã thông báo mà cả hai công ty sẽ dùng để xác định tài khoản cho các giao dịch mua giữa nhau. |
mandateDetails |
Chi tiết thanh toán dành riêng cho uỷ nhiệm chi. |
mandateWithNotificationDetails |
Thông tin thanh toán dành riêng cho các uỷ nhiệm chi, trong đó bắt buộc phải có |
Trường kết hợp
|
|
authenticationRequestId |
KHÔNG BẮT BUỘC: Nếu thông tin này xuất hiện thì người dùng đã được xác thực ngay trước cuộc gọi này hoặc đã được xác thực khi lịch thanh toán tự động được thiết lập. |
otpVerification |
KHÔNG BẮT BUỘC: Dữ liệu cần thiết để xác minh một OTP được tạo từ |
Nội dung phản hồi
Đối tượng phản hồi cho phương thức thu thập.
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. |
paymentIntegratorTransactionId |
KHÔNG 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 đơn vị 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 |
userMessage |
KHÔNG DÙNG NỮA: Nội dung mô tả về kết quả sẽ hiển thị cho người dùng nếu kết quả không phải là |
result |
BẮT BUỘC: Kết quả của ảnh chụp này. |
rawResult |
KHÔNG BẮT BUỘC: Kết quả thô của ảnh chụp 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 đó, Giá trị này là bắt buộc nếu |
transactionLimit |
KHÔNG BẮT BUỘC: Nếu Kết quả là Đây phải là một giới hạn tương ứng với |
currentBalance |
KHÔNG BẮT BUỘC: Nếu Kết quả là Giá trị này phải sử dụng cùng đơn vị tiền tệ với |
MandateDetails
Thông tin chi tiết về giấy uỷ nhiệm thu thập.
Biểu diễn dưới dạng JSON |
---|
{ "mandateId": string } |
Trường | |
---|---|
mandateId |
BẮT BUỘC: Mã uỷ nhiệm do Google tạo được gửi trong cuộc gọi |
MandateWithNotificationDetails
Thông tin chi tiết về giấy uỷ nhiệm thu thập, cùng với thông tin bắt buộc về thông báo.
Biểu diễn dưới dạng JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Trường | |
---|---|
mandateId |
BẮT BUỘC: Mã uỷ nhiệm do Google tạo được gửi trong cuộc gọi |
upcomingTransactionNotificationId |
BẮT BUỘC: |
CaptureContext
Đối tượng này cung cấp ngữ cảnh về cách yêu cầu chụp ảnh.
Biểu diễn dưới dạng JSON |
---|
{ "userIpAddress": string } |
Trường | |
---|---|
userIpAddress |
KHÔNG BẮT BUỘC: Đây là địa chỉ IP thiết bị của người dùng nếu giao dịch mua do người dùng thực hiện trong phiên. Nếu người dùng không ở trong phiên thì giá trị này sẽ trống. Nếu hợp đồng cụ thể không quy định sự cần thiết cho trường này, thì trường này sẽ luôn trống. |
CaptureResultCode
Mã kết quả để chụp.
Enum | |
---|---|
UNKNOWN_RESULT |
Đừng bao giờ đặt giá trị mặc định này! |
SUCCESS |
Đã chụp xong, giao hàng. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
amount của yêu cầu chụp này vượt quá hạn mức mỗi giao dịch. Nếu bạn dùng mã này, thì hệ thống sẽ điền vào trường transactionLimit cho mục đích thông báo cho người dùng. |
CHARGE_EXCEEDS_DAILY_LIMIT |
Không thể sử dụng tài khoản này để mua hàng ngay bây giờ vì tài khoản đã vượt quá giới hạn hằng ngày. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Không thể sử dụng tài khoản này để mua hàng ngay bây giờ vì tài khoản đã vượt quá giới hạn hàng tháng. |
CHARGE_UNDER_LIMIT |
amount của yêu cầu chụp này chưa đáp ứng số tiền giao dịch tối thiểu. |
INSUFFICIENT_FUNDS |
Tài khoản này không có đủ tiền để đảm bảo ghi nhận được khoản tiền này. |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
Tài khoản này không hỗ trợ đơn vị tiền tệ được yêu cầu. |
ACCOUNT_CLOSED |
Tài khoản của người dùng do đối tác tích hợp nắm giữ đã 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_ON_HOLD |
Tài khoản đang bị tạm ngưng. |
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. |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
Tài khoản đang hoạt động, nhưng GPT đã bị người dùng bên phía nhà tích hợp vô hiệu hoá. 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. |
TOKEN_REFRESH_REQUIRED |
Để trả lại dữ liệu này, người dùng phải thực hiện quy trình làm mới. |
OTP_NOT_MATCHED |
OTP không khớp với thông tin mà nhà tích hợp đã gửi. |
OTP_ALREADY_USED |
OTP đã được sử dụng. |
RISK_DECLINED |
Giao dịch đã bị từ chối vì phía đối tác tích hợp đã kiểm tra rủi ro. Lỗi này vĩnh viễn không thành công đối với khoản thanh toán này, nhưng không khiến phương thức của người dùng bị đóng tại Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Người dùng chưa thiết lập nguồn tiền hoạt động nào trên tài khoản của mình có thể thanh toán cho giao dịch. |
FUNDING_SOURCE_UNAVAILABLE |
Không có tổ chức phát hành cơ sở hoặc nguồn tiền nào. Nếu bạn thử thanh toán lại khoản thanh toán hiện có này thì sẽ không thành công. Google sẽ thử thanh toán lại khi một đối tác trả lại mã phản hồi 4xx hoặc 5xx. Do đó, đối tác thường phải trả lại một trong các mã phản hồi đó nếu thử lại thành công khoản thanh toán này khi nguồn tiền cơ bản có lại. Nhưng, nếu có lý do kỹ thuật mà Google thử lại khoản thanh toán sẽ tiếp tục không thành công, đối tác có thể trả lại "FUNDING_SOURCE_UNAVAILABLE" để cho Google biết rằng không nên thử lại khoản thanh toán này. Lưu ý: Google vẫn có thể thử lại khoản thanh toán này, nhưng chỉ với một requestId khác, nhưng yêu cầu thanh toán này sẽ được đánh dấu là Bị từ chối. |
MANDATE_NOT_ACTIVE |
Giấy uỷ nhiệm dùng cho hoạt động chụp ảnh này không còn hiệu lực nữa. Giá trị trả về này sẽ khiến phương thức uỷ nhiệm chi của người dùng bị đóng với Google. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
Thông báo được gửi cho người dùng về khoản thanh toán uỷ nhiệm định kỳ đã hết hạn. |