- 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 chuyển tiền giữa tài khoản của khách hàng do Google lưu giữ và bên xử lý thanh toán. 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 đối với giao dịch này (refund) đều được điền vào giá trị requestId
vào 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": {}
}
Phản hồ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 ( |
Các trường | |
---|---|
requestHeader |
REQUIRED: Tiêu đề chung cho tất cả các yêu cầu. |
paymentIntegratorAccountId |
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 |
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 |
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 theo một phần triệu của đơn vị tiền tệ. |
captureContext |
REQUIRED: Bối cảnh của bản ghi này. |
Trường nhóm fopDetails . REQUIRED: Thông tin chi tiết về phương thức thanh toán cho giao dịch ghi hình 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ẽ sử dụng để xác định tài khoản cho các giao dịch mua hàng giữa hai công ty. |
mandateDetails |
Chi tiết thanh toán dành riêng cho các uỷ nhiệm chi. |
mandateWithNotificationDetails |
Thông tin thanh toán dành riêng cho các giấy uỷ nhiệm, bắt buộc phải có |
Trường nhóm
|
|
authenticationRequestId |
KHÔNG BẮT BUỘC: Nếu bạn gặp phải trường hợp này 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ã OTP được tạo qua |
Nội dung phản hồi
Đối tượng phản hồi cho phương thức chụ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 ( |
Các trường | |
---|---|
responseHeader |
REQUIRED: Tiêu đề chung cho tất cả cá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 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 |
userMessage |
KHÔNG DÙNG NỮA: Nội dung mô tả kết quả sẽ hiển thị với người dùng nếu kết quả không phải là |
result |
REQUIRED: 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 để 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 đó, 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à 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 có cùng đơn vị tiền tệ với |
MandateDetails
Thông tin chi tiết về uỷ nhiệm thu thập.
Biểu diễn dưới dạng JSON |
---|
{ "mandateId": string } |
Các trường | |
---|---|
mandateId |
REQUIRED: Giấy uỷ nhiệm do Google tạo được gửi trong cuộc gọi |
MandateWithNotificationDetails
Thông tin chi tiết về yêu cầu uỷ nhiệm thu thập, cùng với thông tin chi tiết bắt buộc về thông báo.
Biểu diễn dưới dạng JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
Các trường | |
---|---|
mandateId |
REQUIRED: Giấy uỷ nhiệm do Google tạo được gửi trong cuộc gọi |
upcomingTransactionNotificationId |
REQUIRED: |
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 } |
Các trường | |
---|---|
userIpAddress |
KHÔNG BẮT BUỘC: Đây là địa chỉ IP trên thiết bị của người dùng nếu người dùng thực hiện giao dịch mua 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 của trường này, thì hợp đồng đó 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 thành công, giao hàng xong. |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
amount của yêu cầu chụp này vượt quá giới hạn mỗi giao dịch. Nếu mã này được sử dụng, hãy đ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ì đã vượt quá giới hạn hằng ngày. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
Hiện không thể sử dụng tài khoản này để mua hàng vì tài khoản đã vượt quá hạn mức hằng tháng. |
CHARGE_UNDER_LIMIT |
amount của yêu cầu thu thập này không đá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 cho việc thu thập 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 bị giữ với công cụ tích hợp đã bị đóng. Khi giá trị này được trả về, công cụ của người dùng sẽ bị đóng bằng 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 trình tích hợp đã bị đóng, bị nghi ngờ là tiếp quản tài khoản. Khi giá trị này được trả về, công cụ của người dùng sẽ bị đóng bằng 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 bị giữ với đơn vị tích hợp đã bị đóng do hành vi gian lận. Khi giá trị này được trả về, công cụ của người dùng sẽ bị đóng bằng 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 người dùng bên phía nhà tích hợp đã vô hiệu hoá GPT. Khi giá trị này được trả về, công cụ của người dùng sẽ bị đóng bằng 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ả về giá trị này, người dùng sẽ phải trải qua quy trình làm mới. |
OTP_NOT_MATCHED |
OTP không khớp với thông tin mà đơn vị tích hợp đã gửi. |
OTP_ALREADY_USED |
OTP đã được sử dụng. |
RISK_DECLINED |
Giao dịch đã bị từ chối vì bên tích hợp đã kiểm tra rủi ro. Đây là lỗi vĩnh viễn đối với khoản thanh toán này, nhưng không khiến công cụ của người dùng bị đóng tại Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
Người dùng không có bất kỳ nguồn tiền hoạt động nào được định cấu hình trong tài khoản của họ có thể thanh toán cho giao dịch. |
FUNDING_SOURCE_UNAVAILABLE |
Không có công ty phát hành cơ sở hoặc nguồn tiền và việc thử lại khoản thanh toán hiện có này sẽ không thành công nếu được thử lại. Google sẽ thử thanh toán lại khi đối tác trả lại mã phản hồi 4xx hoặc 5xx. Do đó, thường thì đối tác nên trả lại một trong các mã phản hồi đó nếu việc thử lại chính khoản thanh toán này có thể thành công khi nguồn tiền cơ bản lại có sẵn. Tuy nhiên, nếu có lý do kỹ thuật khiến Google thử lại khoản thanh toán vẫn không thành công, thì đối tác có thể trả về "FUNDING_SOURCE_UNAVAILABLE" để cho Google biết rằng họ không nên thử lại chính 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à Đã từ chối. |
MANDATE_NOT_ACTIVE |
Giấy uỷ nhiệm dùng cho lần chụp này không còn hiệu lực nữa. Giá trị trả về này sẽ khiến công cụ uỷ nhiệm 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. |