Method: capture

Google-এর সাথে থাকা গ্রাহকের অ্যাকাউন্ট এবং পেমেন্ট প্রসেসরের মধ্যে অর্থ চলাচল শুরু করে। হেডার এবং paymentIntegratorAccountId এর মধ্যে requestId এর সংমিশ্রণ হল idempotency কী এবং অনন্যভাবে এই লেনদেনকে চিহ্নিত করে। এই লেনদেনের সমস্ত মিউটেশন (রিফান্ড) captureRequestId ক্ষেত্রে requestId মান পূরণ করে।

অনুরোধটি প্রক্রিয়া করার সময় যদি এন্ডপয়েন্টটি একটি ত্রুটির সম্মুখীন হয়, তাহলে এই এন্ডপয়েন্ট থেকে রেসপন্স বডিটি ErrorResponse টাইপ হওয়া উচিত।

একটি উদাহরণ অনুরোধ এর মত দেখায়:


{
  "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": {}
}

একটি উদাহরণ প্রতিক্রিয়া মত দেখায়:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "SUCCESS",
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}

HTTP অনুরোধ

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

শরীরের অনুরোধ

অনুরোধের অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:

JSON প্রতিনিধিত্ব
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,
  "captureContext": {
    object (CaptureContext)
  },

  // Union field fopDetails can be only one of the following:
  "googlePaymentToken": string,
  "mandateDetails": {
    object (MandateDetails)
  },
  "mandateWithNotificationDetails": {
    object (MandateWithNotificationDetails)
  }
  // End of list of possible types for union field fopDetails.

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
ক্ষেত্র
requestHeader

object ( RequestHeader )

প্রয়োজনীয় : সমস্ত অনুরোধের জন্য সাধারণ শিরোনাম।

paymentIntegratorAccountId

string

প্রয়োজনীয় : এটি হল পেমেন্ট ইন্টিগ্রেটর অ্যাকাউন্ট শনাক্তকারী যা এই লেনদেনের চারপাশে চুক্তিগত সীমাবদ্ধতাগুলি সনাক্ত করে৷

transactionDescription

string

প্রয়োজনীয় : এটি লেনদেনের বিবরণ যা গ্রাহকের বিবৃতিতে রাখা যেতে পারে। requestHeader পাওয়া userLocale-এ স্থানীয়করণ করা হয়েছে। এই বিন্যাসটি নোটিশ ছাড়াই পরিবর্তন করা যেতে পারে এবং কখনই পার্স করা উচিত নয়।

currencyCode

string

প্রয়োজনীয় : ISO 4217 3-অক্ষরের মুদ্রা কোড

amount

string ( Int64Value format)

প্রয়োজনীয় : ক্রয়ের পরিমাণ, মুদ্রা ইউনিটের মাইক্রোতে

captureContext

object ( CaptureContext )

প্রয়োজনীয় : এই ক্যাপচার সম্পর্কে প্রসঙ্গ।

ইউনিয়ন ক্ষেত্র fopDetails . প্রয়োজনীয় : এই ক্যাপচার লেনদেনের জন্য FOP বিশদ বিবরণ। fopDetails নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
googlePaymentToken

string

টোকেন যা উভয় কোম্পানি একে অপরের মধ্যে কেনাকাটার জন্য অ্যাকাউন্ট সনাক্ত করতে ব্যবহার করবে।

mandateDetails

object ( MandateDetails )

আদেশের জন্য নির্দিষ্ট অর্থপ্রদানের বিবরণ।

mandateWithNotificationDetails

object ( MandateWithNotificationDetails )

ম্যান্ডেটের জন্য নির্দিষ্ট অর্থপ্রদানের বিশদ বিবরণ, যেখানে একটি upcomingTransactionNotification প্রয়োজন।

ইউনিয়ন ফিল্ড account_verification

account_verification নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

authenticationRequestId

string

ঐচ্ছিক : সংশ্লিষ্ট প্রমাণীকরণ অনুরোধের requestId । যদি এটি উপস্থিত না থাকে তবে এই ক্যাপচারের সাথে কোন প্রমাণীকরণ বাঁধা যাবে না।

যদি এটি উপস্থিত থাকে তবে ব্যবহারকারীকে এই কলের অবিলম্বে প্রমাণীকরণ করা হয়েছিল, অথবা একটি স্বয়ংক্রিয় অর্থপ্রদানের সময়সূচী সেট আপ করার সময় প্রমাণীকরণ করা হয়েছিল৷

otpVerification

object ( OtpVerification )

ঐচ্ছিক : sendOtp থেকে উৎপন্ন একটি OTP যাচাই করার জন্য প্রয়োজনীয় ডেটা। এটি শুধুমাত্র উপস্থিত থাকে যদি ব্যবহারকারী sendOtp পাথ দিয়ে যান।

প্রতিক্রিয়া শরীর

ক্যাপচার পদ্ধতির জন্য প্রতিক্রিয়া বস্তু।

সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:

JSON প্রতিনিধিত্ব
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "userMessage": string,
  "result": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },
  "transactionLimit": string,
  "currentBalance": string
}
ক্ষেত্র
responseHeader

object ( ResponseHeader )

প্রয়োজনীয় : সমস্ত প্রতিক্রিয়ার জন্য সাধারণ শিরোনাম।

paymentIntegratorTransactionId

string

ঐচ্ছিক : এই শনাক্তকারীটি ইন্টিগ্রেটরের জন্য নির্দিষ্ট এবং ইন্টিগ্রেটর দ্বারা তৈরি করা হয়। এটি সেই শনাক্তকারী যার দ্বারা ইন্টিগ্রেটর এই লেনদেনটি জানে৷

সুবিধার জন্য, এই শনাক্তকারীকে রেমিটেন্সের বিবরণের সাথে অন্তর্ভুক্ত করা হয়েছে

userMessage
(deprecated)

string

অপ্রচলিত : ফলাফলের একটি বিবরণ ব্যবহারকারীকে দেখানো হবে যদি ফলাফল SUCCESS না হয়।

result

enum ( CaptureResultCode )

প্রয়োজনীয় : এই ক্যাপচারের ফলাফল।

rawResult

object ( RawResult )

ঐচ্ছিক : এই ক্যাপচারের কাঁচা ফলাফল। Google এর ঝুঁকিপূর্ণ ইঞ্জিন এবং বিশ্লেষণে সহায়তা করতে ব্যবহৃত হয়। ডিক্লাইন কোড-ম্যাপিং পরিস্থিতিতে, ডেটা কখনও কখনও হারিয়ে যায়। ইন্টিগ্রেটর গুগলকে একটি কাঁচা কোড দিতে বেছে নিতে পারে। উদাহরণস্বরূপ, একটি ক্রেডিট কার্ড গেটওয়ে (একীকরণকারী) এই ক্ষেত্রটি ব্যবহার করতে পারে Google এর সাথে যোগাযোগ করার জন্য সঠিক ডিক্লাইন কোড যা VISA নেটওয়ার্ক থেকে প্রাপ্ত হয়েছিল। সেক্ষেত্রে, scope হবে "ভিসা" এবং VISA নেটওয়ার্ক ফেরত দেওয়া যাই হোক না কেন rawCode হবে৷

result SUCCESS না হলে এই মানটি প্রয়োজন

transactionLimit

string ( Int64Value format)

ঐচ্ছিক : যদি ফলাফল CHARGE_EXCEEDS_TRANSACTION_LIMIT হয়, তাহলে এটিই সর্বাধিক পরিমাণ যা ব্যবহারকারী একটি লেনদেনে ব্যয় করতে পারে ( মাইক্রোতে )। এটি কাঠামোগত, ব্যবহারকারীর মুখোমুখি মেসেজিং এবং হ্রাস হার বিশ্লেষণের জন্য ব্যবহৃত হয়।

এটি অবশ্যই অনুরোধের currencyCode সাথে সম্পর্কিত একটি সীমা হতে হবে।

currentBalance

string ( Int64Value format)

ঐচ্ছিক : যদি ফলাফল INSUFFICIENT_FUNDS হয়, তাহলে এটি ব্যবহারকারীর অ্যাকাউন্টে বর্তমান উপলব্ধ ব্যালেন্স ( মাইক্রোতে )। এটি কাঠামোগত, ব্যবহারকারীর মুখোমুখি মেসেজিংয়ের জন্য ব্যবহৃত হয়।

এই মানটি অনুরোধে currencyCode মতো একই মুদ্রায় হতে হবে।

আদেশের বিবরণ

থেকে ক্যাপচার করার আদেশ সম্পর্কে বিশদ বিবরণ৷

JSON প্রতিনিধিত্ব
{
  "mandateId": string
}
ক্ষেত্র
mandateId

string

প্রয়োজনীয় : Google তৈরি করা ম্যান্ডেট আইডি যা createMandate কলের সময় পাঠানো হয়েছিল।

ম্যান্ডেট উইথ নোটিফিকেশন বিশদ বিবরণ

প্রয়োজনীয় বিজ্ঞপ্তির বিশদ সহ ক্যাপচার করার আদেশ সম্পর্কে বিশদ।

JSON প্রতিনিধিত্ব
{
  "mandateId": string,
  "upcomingTransactionNotificationId": string
}
ক্ষেত্র
mandateId

string

প্রয়োজনীয় : Google তৈরি করা ম্যান্ডেট আইডি যা createMandate কলের সময় পাঠানো হয়েছিল।

upcomingTransactionNotificationId

string

প্রয়োজনীয় : upcomingTransactionNotification কলের requestId , যা এই লেনদেন সম্পর্কে পূর্ব অবহিত করার জন্য করা হয়েছিল।

ক্যাপচার কনটেক্সট

এই বস্তুটি কীভাবে ক্যাপচারের অনুরোধ করা হয়েছিল সে সম্পর্কে প্রসঙ্গ সরবরাহ করে।

JSON প্রতিনিধিত্ব
{
  "userIpAddress": string
}
ক্ষেত্র
userIpAddress

string

ঐচ্ছিক : এটি ব্যবহারকারীর ডিভাইসের IP ঠিকানা যদি কোনো ব্যবহারকারী সেশনে কেনাকাটা করে থাকেন। ব্যবহারকারী সেশনে না থাকলে এটি খালি হবে। যদি নির্দিষ্ট চুক্তি এই ক্ষেত্রের জন্য প্রয়োজনীয়তা নির্ধারণ না করে তবে এটি সর্বদা খালি থাকবে।

ক্যাপচার রেজাল্টকোড

ক্যাপচার জন্য ফলাফল কোড.

এনামস
UNKNOWN_RESULT এই ডিফল্ট মান সেট করবেন না!
SUCCESS সফল ক্যাপচার, পণ্য বিতরণ.
CHARGE_EXCEEDS_TRANSACTION_LIMIT এই ক্যাপচার অনুরোধের amount প্রতি-লেনদেনের সীমা ছাড়িয়ে গেছে। যদি এই কোডটি ব্যবহার করা হয় তবে ব্যবহারকারীর বার্তা প্রেরণের উদ্দেশ্যে লেনদেনসীমা ক্ষেত্রটি পূরণ করুন।
CHARGE_EXCEEDS_DAILY_LIMIT এই অ্যাকাউন্টটি এখনই কেনাকাটার জন্য ব্যবহার করা যাবে না কারণ এটি তার দৈনিক সীমা অতিক্রম করেছে৷
CHARGE_EXCEEDS_MONTHLY_LIMIT এই অ্যাকাউন্টটি এখনই কেনাকাটার জন্য ব্যবহার করা যাবে না কারণ এটি তার মাসিক সীমা অতিক্রম করেছে৷
CHARGE_UNDER_LIMIT এই ক্যাপচার অনুরোধের amount সর্বনিম্ন লেনদেনের পরিমাণ পূরণ করে না।
INSUFFICIENT_FUNDS এই ক্যাপচারের গ্যারান্টি দেওয়ার জন্য এই অ্যাকাউন্টে পর্যাপ্ত তহবিল নেই।
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY এই অ্যাকাউন্টটি অনুরোধ করা মুদ্রা সমর্থন করে না।
ACCOUNT_CLOSED

ইন্টিগ্রেটরের সাথে থাকা ব্যবহারকারীর অ্যাকাউন্টটি বন্ধ করা হয়েছে।

এই মান ফিরিয়ে দিলে ব্যবহারকারীর যন্ত্র Google-এর সাথে বন্ধ হয়ে যাবে। ব্যবহারকারী আবার অ্যাসোসিয়েশন প্রবাহের মধ্য দিয়ে গিয়ে একটি নতুন উপকরণ যোগ করতে বাধ্য হবে।

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

ইন্টিগ্রেটরের সাথে ব্যবহারকারীর অ্যাকাউন্ট বন্ধ করা হয়েছে, সন্দেহজনক অ্যাকাউন্ট দখল করা হয়েছে।

এই মান ফিরিয়ে দিলে ব্যবহারকারীর যন্ত্র Google-এর সাথে বন্ধ হয়ে যাবে। ব্যবহারকারী আবার অ্যাসোসিয়েশন প্রবাহের মধ্য দিয়ে গিয়ে একটি নতুন উপকরণ যোগ করতে বাধ্য হবে।

ACCOUNT_ON_HOLD অ্যাকাউন্ট হোল্ডে রয়েছে।
ACCOUNT_CLOSED_FRAUD

ইন্টিগ্রেটরের সাথে থাকা ব্যবহারকারীর অ্যাকাউন্ট প্রতারণার কারণে বন্ধ করা হয়েছে।

এই মান ফিরিয়ে দিলে ব্যবহারকারীর যন্ত্র Google-এর সাথে বন্ধ হয়ে যাবে। ব্যবহারকারী আবার অ্যাসোসিয়েশন প্রবাহের মধ্য দিয়ে গিয়ে একটি নতুন উপকরণ যোগ করতে বাধ্য হবে।

GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER

অ্যাকাউন্টটি সক্রিয়, কিন্তু GPT সংহতকারীর পক্ষের ব্যবহারকারী দ্বারা অবৈধ করা হয়েছে।

এই মান ফিরিয়ে দিলে ব্যবহারকারীর যন্ত্র Google-এর সাথে বন্ধ হয়ে যাবে। ব্যবহারকারী আবার অ্যাসোসিয়েশন প্রবাহের মধ্য দিয়ে গিয়ে একটি নতুন উপকরণ যোগ করতে বাধ্য হবে।

TOKEN_REFRESH_REQUIRED এটি ফেরত দেওয়ার জন্য ব্যবহারকারীকে একটি রিফ্রেশ প্রবাহের মধ্য দিয়ে যেতে হবে।
OTP_NOT_MATCHED ইন্টিগ্রেটর যা পাঠিয়েছে তার সাথে ওটিপি মেলেনি।
OTP_ALREADY_USED ওটিপি আগেই ব্যবহার করা হয়েছে।
RISK_DECLINED

ইন্টিগ্রেটরের দিকে ঝুঁকি যাচাইয়ের কারণে লেনদেনটি প্রত্যাখ্যান করা হয়েছে।

এটি এই অর্থপ্রদানের জন্য একটি স্থায়ী ব্যর্থতা, কিন্তু Google-এ ব্যবহারকারীর উপকরণ বন্ধ করার কারণ হয় না৷

NO_GOOD_FUNDING_SOURCE_AVAILABLE ব্যবহারকারীর তাদের অ্যাকাউন্টে কনফিগার করা কোনো কাজের তহবিল উৎস নেই যা লেনদেনের জন্য অর্থ প্রদান করতে সক্ষম।
FUNDING_SOURCE_UNAVAILABLE

অন্তর্নিহিত ইস্যুকারী বা তহবিলের উৎস অনুপলব্ধ এবং এই বিদ্যমান অর্থপ্রদানের জন্য পুনরায় চেষ্টা করা সফল হবে না যদি পুনরায় চেষ্টা করা হয়।

পার্টনারের দ্বারা 4xx বা 5xx রেসপন্স কোড ফেরত দিলে Google পেমেন্টের জন্য আবার চেষ্টা করবে। এই কারণে, অংশীদারদের সাধারণত সেই প্রতিক্রিয়া কোডগুলির একটি ফেরত দেওয়া উচিত যদি এই একই অর্থপ্রদানের পুনরায় চেষ্টা সফল হতে পারে যখন তহবিলের অন্তর্নিহিত উত্স আবার উপলব্ধ হয়। কিন্তু, যদি এমন প্রযুক্তিগত কারণ থাকে যেখানে Google পুনরায় অর্থপ্রদানের চেষ্টা করতে ব্যর্থ হয়, তাহলে অংশীদার Google কে বলার উপায় হিসাবে "FUNDING_SOURCE_UNAVAILABLE" ফেরত দিতে পারে যে এটি একই অর্থপ্রদানের পুনরায় চেষ্টা করা উচিত নয়৷

দ্রষ্টব্য: Google এখনও এই অর্থপ্রদানের পুনরায় চেষ্টা করতে পারে, কিন্তু শুধুমাত্র একটি ভিন্ন অনুরোধ আইডি দিয়ে, কিন্তু এই অর্থপ্রদানের অনুরোধটি প্রত্যাখ্যান হিসাবে চিহ্নিত করা হবে।

MANDATE_NOT_ACTIVE এই ক্যাপচারের জন্য ব্যবহৃত ম্যান্ডেট আর সক্রিয় নেই৷ এই রিটার্ন মানের কারণে ব্যবহারকারীর ম্যান্ডেট ইনস্ট্রুমেন্ট Google-এর সাথে বন্ধ হয়ে যাবে।
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED একটি পুনরাবৃত্ত ম্যান্ডেট অর্থপ্রদানের জন্য ব্যবহারকারীকে যে বিজ্ঞপ্তি পাঠানো হয়েছিল তার মেয়াদ শেষ হয়ে গেছে৷