ক্যাশ এফওপি, ক্যাশ এফওপি

ওভারভিউ

Google স্ট্যান্ডার্ড পেমেন্ট নগদ-ভিত্তিক FOPs (অর্থপ্রদানের ধরন) যেমন সুবিধার দোকানে কেনাকাটা (যেমন 7-Eleven) সমর্থন করে। উচ্চ স্তরে, একজন ব্যবহারকারী যে পণ্যের জন্য অর্থপ্রদান করতে চায় পেমেন্ট ইন্টিগ্রেটরের মাধ্যমে একটি রেফারেন্স নম্বর তৈরি করে। ব্যবহারকারী তারপর এই রেফারেন্স নম্বরটি একটি সুবিধার দোকান, কিয়স্ক বা ব্যাঙ্কে নিয়ে যায় এবং রেফারেন্স নম্বরটি প্রদান করে।

অর্থপ্রদান যোগ করুন
1) ব্যবহারকারী একটি অর্থপ্রদানের পদ্ধতি যোগ করে
কোথায় দিতে হবে তা বেছে নিন
2) তারপর তারা কোথায় অর্থ প্রদান করবে তা চয়ন করে
অর্থ প্রদান নির্দেশনাবলী
3) অবশেষে, তাদের পেমেন্ট নির্দেশনা দেওয়া হয়

ধারণা এবং পরিভাষা

{% যদি dynamic_data.request.path এ "স্ট্যান্ডার্ড-পেমেন্ট" হয় %} {% setvar documentation_base_path %}/standard-payments{% endsetvar %} {% elif "pay/banking-fop-v2" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/banking-fop-v2{% endsetvar %} {% setvar spec_name %}banking-fop-v2{% endsetvar %} {% elif "pay/card-fop-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/card-fop-v1{% endsetvar %} {% setvar spec_name %}card-fop-v1{% endsetvar %} {% elif "pay/card-management-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/card-management-v1{% endsetvar %} {% setvar spec_name %}কার্ড-ম্যানেজমেন্ট-v1{% endsetvar %} {% elif "pay/carriers-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/carriers-v1{% endsetvar %} {% setvar spec_name %}ক্যারিয়ার-v1{% endsetvar %} {% elif "pay/carrier-wallets-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/carrier-wallets-v1{% endsetvar %} {% setvar spec_name %}carrier-wallets-v1{% endsetvar %} {% elif "pay/e-wallets-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/e-wallets-v1{% endsetvar %} {% setvar spec_name %}e-wallets-v1{% endsetvar %} {% elif "pay/chargeback-alert-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/chargeback-alert-v1{% endsetvar %} {% setvar spec_name %}chargeback-alert-v1{% endsetvar %} {% elif "pay/golden-fop-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/golden-fop-v1{% endsetvar %} {% setvar spec_name %}গোল্ডেন-ফপ-ভি1{% endsetvar %} {% elif "pay/facilitated-transaction-event-v2" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/facilitated-transaction-event-v2{% endsetvar %} {% setvar spec_name %}facilitated-transaction-event-v2{% endsetvar %} {% elif "pay/india-cards-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/india-cards-v1{% endsetvar %} {% setvar spec_name %}india-cards-v1{% endsetvar %} {% elif "pay/issuers/apis/push-provisioning/server" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/issuers/apis/push-provisioning/server{% endsetvar %} {% setvar spec_name %}push-provisioning-v1{% endsetvar %} {% elif "pay/one-time-payment-code-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/one-time-payment-code-v1{% endsetvar %} {% setvar spec_name %}এককালীন-পেমেন্ট-কোড-v1{% endsetvar %} {% elif "pay/redirect-fop-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/redirect-fop-v1{% endsetvar %} {% setvar spec_name %}redirect-fop-v1{% endsetvar %} {% elif "pay/redirect-payment-token-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/redirect-payment-token-v1{% endsetvar %} {% setvar spec_name %}রিডাইরেক্ট-পেমেন্ট-টোকেন-v1{% endsetvar %} {% elif "pay/refundable-one-time-payment-code-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/refundable-one-time-payment-code-v1{% endsetvar %} {% setvar spec_name %}ফেরতযোগ্য-ওয়ান-টাইম-পেমেন্ট-কোড-v1{% endsetvar %} {% elif "pay/refundable-one-time-payment-code-v2" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/refundable-one-time-payment-code-v2{% endsetvar %} {% setvar spec_name %}ফেরতযোগ্য-ওয়ান-টাইম-পেমেন্ট-কোড-v2{% endsetvar %} {% elif "pay/value-on-device-fop-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/value-on-device-fop-v1{% endsetvar %} {% setvar spec_name %}value-on-device-fop-v1{% endsetvar %} {% elif "pay/virtual-cards-v1" in dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/virtual-cards-v1{% endsetvar %} {% setvar spec_name %}ভার্চুয়াল-কার্ড-v1{% endsetvar %} {% যদি শেষ %}

প্রতীক ও নিয়মাবলী

এই নথিগুলিতে "অবশ্যই," "অবশ্যই নয়," "প্রয়োজনীয়," "শালা," "না করা উচিত," "উচিত," "উচিত নয়," "প্রস্তাবিত," "মেয়ে" এবং "ঐচ্ছিক" হল RFC 2119- এ বর্ণিত হিসাবে ব্যাখ্যা করা হবে।

টাইমস্ট্যাম্প

ইউটিসি-তে ইউনিক্স যুগ (জানুয়ারি 1, 1970) থেকে সমস্ত টাইমস্ট্যাম্প মিলিসেকেন্ড হিসাবে উপস্থাপন করা হয়।

উদাহরণ স্বরূপ:

  • 23 এপ্রিল, 2019 8:23:25 PM GMT = 1556051005000 মিলিসেকেন্ড
  • 16 আগস্ট, 2018 12:28:35 PM GMT = 1534422515000 মিলিসেকেন্ড

পরিমাণ

এই API-এর আর্থিক মানগুলি "মাইক্রোস" নামে একটি বিন্যাসে রয়েছে, যা Google-এর একটি আদর্শ৷ মাইক্রো হল একটি পূর্ণসংখ্যা ভিত্তিক, নির্দিষ্ট নির্ভুল বিন্যাস। মাইক্রোতে একটি আর্থিক মান উপস্থাপন করতে, আদর্শ মুদ্রার মানকে 1,000,000 দ্বারা গুণ করুন।

উদাহরণ স্বরূপ:

  • USD$1.23 = 1230000 মাইক্রো USD
  • USD$0.01 = 10000 মাইক্রো USD

অদম্যতা

এই API-এর মধ্যে থাকা সমস্ত মেথড কলে অবশ্যই অদম্য আচরণ থাকতে হবে। উভয় পক্ষের লেনদেন একই অবস্থায় আছে তা নিশ্চিত করার জন্য Google বিক্ষিপ্তভাবে অনুরোধগুলি পুনরায় চেষ্টা করবে। ইন্টিগ্রেটরদের ইতিমধ্যে সফলভাবে প্রক্রিয়া করা কোনো অনুরোধ পুনরায় প্রক্রিয়া করার চেষ্টা করা উচিত নয়। এর পরিবর্তে সফল প্রক্রিয়াকরণের প্রতিক্রিয়া প্রতিবেদন করা উচিত। সমস্ত পদ্ধতির একটি সাধারণ RequestHeader থাকে যাতে একটি requestId থাকে। এই অনুরোধ আইডি হল সমস্ত কলের জন্য অদম্যতা কী।

যেকোন অ-টার্মিনাল প্রতিক্রিয়া (একটি নন HTTP 200-সফলতা), অবশ্যই বুদ্ধিমত্তার সাথে প্রক্রিয়া করা উচিত নয়। সুতরাং একটি অনুরোধ যেটি আগে 400 (খারাপ অনুরোধ/ব্যর্থ পূর্বশর্ত) পেয়েছিল, যখন দ্বিতীয়বার কল করা হয়, তখন অবশ্যই 400 ফেরত দেওয়া উচিত নয়, এটি অবশ্যই পুনরায় মূল্যায়ন করা উচিত। পুনঃমূল্যায়নে, এটি একটি 400 ফেরত দিতে পারে বা সফলভাবে প্রক্রিয়া করা যেতে পারে।

অদম্যতা সম্পর্কে আরও তথ্যের জন্য এই বিস্তারিত নির্দেশিকাটি দেখুন।

ইন্টিগ্রেটর

একটি কোম্পানি যারা তাদের ব্যবসার জন্য Google এর পেমেন্ট প্ল্যাটফর্ম ব্যবহার করে। এটি অভ্যন্তরীণ হতে পারে (1P), যেমন Youtube বা AdWords, এটি একটি বাহ্যিক (3P) ব্যবসাও হতে পারে যারা Google এর ইকোসিস্টেমের সাথে কাজ করার জন্য তাদের পরিষেবাকে একীভূত করতে চায়৷

FOP

পাওনা পরিশোধের ফরম. এটি একটি যন্ত্রের চেয়ে আরও সাধারণ। Visa, MasterCard, এবং PayPal সব FOP।

যন্ত্র

একটি নির্দিষ্ট গ্রাহকের দ্বারা অর্থপ্রদানের একটি নির্দিষ্ট উদাহরণ। উদাহরণস্বরূপ, একজন ব্যবহারকারীর ক্রেডিট কার্ড বা তাদের পেপাল অ্যাকাউন্ট। একটি নির্দিষ্ট গ্রাহকের জন্য একটি টোকেনাইজড FOPও একটি উপকরণ, কারণ এটি সেই গ্রাহকের জন্য অর্থপ্রদানের একটি উদাহরণ, আমাদের সিস্টেমে নিরাপদে সঞ্চিত।

টোকেন

একটি প্রতিনিধিত্ব, Google এর সিস্টেমে, একটি নির্দিষ্ট ব্যবহারকারীর অর্থপ্রদানের পদ্ধতির। যেহেতু এটিতে একটি কেনাকাটা করার জন্য প্রয়োজনীয় সমস্ত তথ্য রয়েছে, তাই একটি টোকেনও একটি উপকরণ। এর মধ্যে একজন ব্যবহারকারীর তাদের সংহতকারীর কাছে থাকা অ্যাকাউন্ট নম্বরের মতো তথ্য অন্তর্ভুক্ত থাকতে পারে।

কী প্রবাহ

এই রেফারেন্স নম্বরগুলি তৈরি করতে এবং অর্থপ্রদান করতে Google দুটি কী ফ্লো ব্যবহার করে:

  1. রেফারেন্স নম্বর ফ্লো তৈরি করুন।
  2. পে রেফারেন্স নম্বর ফ্লো।

পরবর্তীতে, রেমিট্যান্স প্রবাহের মাধ্যমে কেনাকাটা থেকে পুনর্মিলন এবং নিষ্পত্তি করা হয়।

নীচের চিত্রটি এই প্রতিটি প্রবাহকে চিত্রিত করে।

নগদ FOP ওভারভিউ

নগদ FOP উচ্চ-স্তরের ওভারভিউ

প্রথম দুটি প্রবাহ নিম্নলিখিত বিভাগে আরও বিশদে বর্ণনা করা হয়েছে। আপনি যদি সেই প্রবাহ সম্পর্কে আরও জানতে চান তাহলে রেমিট্যান্স প্রবাহ পৃষ্ঠাটি দেখুন।

রেফারেন্স নম্বর তৈরি করুন

রেফারেন্স নম্বর ফ্লো জেনারেট করার উদ্দেশ্য হল একটি শনাক্তকারী (রেফারেন্স নম্বর) তৈরি করা এবং বিনিময় করা যা Google এবং ইন্টিগ্রেটর উভয়ই একটি ক্রয় সনাক্ত করতে ব্যবহার করতে পারে। ব্যবহারকারী তারপর এই রেফারেন্স নম্বরটি একটি সুবিধার দোকান, কিয়স্ক বা ব্যাঙ্কে ব্যবহার করে কেনাকাটা সম্পূর্ণ করতে পারেন৷ এই শনাক্তকারীটি generateReferenceNumber পদ্ধতিতে কল করে Google এর অনুরোধে ইন্টিগ্রেটর দ্বারা তৈরি করা হয়। রেফারেন্স নম্বর তৈরির অনুরোধে একটি পরিমাণ এবং একটি লেনদেনের বিবরণ অন্তর্ভুক্ত রয়েছে।

নিম্নলিখিত চিত্রটি ব্যাখ্যা করে যে কীভাবে একটি রেফারেন্স নম্বর তৈরি করা হয় এবং নির্দেশাবলী সহ গ্রাহককে পাঠানো হয়।

রেফারেন্স নম্বর প্রবাহ তৈরি করুন

ক্যাশ জেনারেট রেফারেন্স নম্বর

এখানে বস্তুর একটি তালিকা এবং তারা কি প্রতিনিধিত্ব করে:

  • ব্যবহারকারী : এটি সেই ব্যক্তি যে এই অর্থপ্রদানের পদ্ধতি ব্যবহার করে কিছুর জন্য অর্থপ্রদান করতে চায়৷
  • Google UI : এটি সেই ইন্টারফেস যেখানে ব্যবহারকারী তাদের ক্রয় করে। এটি ওয়েবের মাধ্যমে বা একটি অ্যাপের মাধ্যমে হতে পারে।
  • গুগল সার্ভার : গুগলের ব্যাকএন্ড সার্ভার যা রেফারেন্স নম্বর তৈরির অনুরোধ করে এবং ব্যবহারকারীর জন্য অর্থপ্রদানের নির্দেশাবলী তৈরি করে।
  • পেমেন্ট ইন্টিগ্রেটর সার্ভার : পেমেন্ট ইন্টিগ্রেটরের ব্যাকএন্ড সার্ভার যা অর্থপ্রদানের বিবরণ ট্র্যাক করে এবং রেফারেন্স নম্বর তৈরি করে।

এই প্রবাহটি সেই ব্যবহারকারীর সাথে শুরু হয় যারা এই নগদ অর্থপ্রদানের ফর্মটি ব্যবহার করতে চায়৷

  1. ব্যবহারকারী Google UI অ্যাক্সেস করে যা একটি রেফারেন্স নম্বরের জন্য একটি অনুরোধ পাঠায়।
  2. Google UI Google সার্ভারে একটি বার্তা পাঠায় যে এটির একটি রেফারেন্স নম্বর প্রয়োজন ( getReferenceNumber )৷
  3. Google সার্ভার পেমেন্ট ইন্টিগ্রেটর সার্ভারকে একটি রেফারেন্স নম্বর ( generateReferenceNumber ) তৈরি করতে বলে।
  4. পেমেন্ট ইন্টিগ্রেটর সার্ভার রেফারেন্স নম্বর তৈরি করে এবং Google সার্ভারে পাঠায়।
  5. Google সার্ভার রেফারেন্স নম্বরের সাথে যেতে অর্থপ্রদানের নির্দেশাবলী তৈরি করে। তারপর এটি এই তথ্য Google UI এ পাঠায়।
  6. Google UI এই নির্দেশাবলী এবং রেফারেন্স নম্বর ব্যবহারকারীকে পাঠায়।

রেফারেন্স নম্বরের নোট

রেফারেন্স নম্বরগুলি শুধুমাত্র একবার অর্থ প্রদান করা যেতে পারে, এবং সেগুলি বাতিল রেফারেন্স নম্বর প্রবাহের মাধ্যমে বাতিল করা যেতে পারে। এছাড়াও, রেফারেন্স নম্বরগুলি অবশ্যই আলফানিউমেরিক হতে হবে এবং এটি অবশ্যই একাধিক প্রদর্শন বিন্যাস সমর্থন করবে৷

রেফারেন্স নম্বর প্রদর্শনের পাশাপাশি, Google-এর UIs ঐচ্ছিকভাবে কোড 128 ফরম্যাটে (একটি বারকোড বিন্যাস) রেফারেন্স নম্বর উপস্থাপন করতে পারে। অন্যান্য বারকোড বিন্যাস অনুরোধ দ্বারা সমর্থিত হতে পারে.

পে রেফারেন্স নম্বর

ব্যবহারকারী এই রেফারেন্স নম্বরটি একটি সুবিধার দোকানে, কিয়স্কে বা ব্যাঙ্কে ব্যবহার করবেন ব্যবহারকারী যে ক্রয়ের জন্য অর্থ প্রদান করতে চান তা সনাক্ত করতে। ইন্টিগ্রেটরকে ব্যবহারকারীকে ক্রয়ের পরিমাণ, তারিখ, এবং অর্থপ্রদানের পূর্বে লেনদেনের বিবরণ প্রদর্শন করে ক্রয়ের অর্থ প্রদানের বিষয়টি নিশ্চিত করতে হবে।

ব্যবহারকারী একবার অর্থপ্রদান করা বেছে নিলে, তাদের অবশ্যই সম্পূর্ণ অর্থ প্রদান করতে হবে এবং শুধুমাত্র একবার অর্থ প্রদান করতে হবে। এই API একটি একক রেফারেন্স নম্বরের উপর বা কম অর্থপ্রদান সমর্থন করে না। একক রেফারেন্স নম্বরে একাধিক অর্থপ্রদানও সমর্থিত নয়।

একবার ব্যবহারকারী অর্থপ্রদান করলে, ইন্টিগ্রেটরকে অবিলম্বে Google-কে অবহিত করতে হবে যে এই রেফারেন্স নম্বরটি referenceNumberPaidNotification পদ্ধতির মাধ্যমে প্রদান করা হয়েছে। ব্যবহারকারীর শারীরিকভাবে অর্থ প্রদানের কয়েক সেকেন্ডের মধ্যে এই পদ্ধতিতে কল করার মাধ্যমে, ইন্টিগ্রেটর ব্যবহারকারীকে দ্রুত তাদের পণ্য গ্রহণ করতে দেয়। (নেটওয়ার্ক ডাউন থাকলে এই কলটি একটি সারিতে যোগ করা যেতে পারে।)

একবার অর্থপ্রদান করা হলে, T+2 দিনে পাঠানো রেমিটেন্স বিবৃতিতে রেফারেন্স নম্বর এবং পরিমাণ অন্তর্ভুক্ত করা হবে।

এখানে একটি সিকোয়েন্স ডায়াগ্রাম রয়েছে যা একটি রেফারেন্স নম্বরের অর্থপ্রদানকে চিত্রিত করে।

পে রেফারেন্স নম্বর প্রবাহ

পে রেফারেন্স নম্বর প্রবাহ

ডায়াগ্রামের বস্তুগুলি নিম্নলিখিতগুলি উপস্থাপন করে:

  • ব্যবহারকারী : এটি সেই ব্যক্তি যে এই অর্থপ্রদানের পদ্ধতি ব্যবহার করে কিছুর জন্য অর্থপ্রদান করতে চায়৷
  • কনভেনিয়েন্স স্টোর : যে অবস্থানে ব্যবহারকারী রেফারেন্স নম্বর এবং প্রদত্ত নির্দেশাবলী ব্যবহার করে তাদের অর্থপ্রদান করেন, যেমন একটি সুবিধার দোকান।
  • পেমেন্ট ইন্টিগ্রেটর সার্ভার : পেমেন্ট ইন্টিগ্রেটরের ব্যাকএন্ড সার্ভার যা পেমেন্টের বিবরণ ট্র্যাক করে।
  • গুগল সার্ভার : গুগলের ব্যাকএন্ড সার্ভার যা রেফারেন্স নম্বর তৈরির অনুরোধ করে এবং ব্যবহারকারীর জন্য অর্থপ্রদানের নির্দেশাবলী তৈরি করে।

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

  1. পেমেন্ট করার জন্য ব্যবহারকারী একটি কনভেনিয়েন্স স্টোরে যায়।
  2. লেনদেন সম্পূর্ণ হওয়ার পরে, সুবিধার দোকান পেমেন্টের পেমেন্ট ইন্টিগ্রেটরকে অবহিত করে।
  3. পেমেন্ট ইন্টিগ্রেটর সার্ভার কনভেনিয়েন্স স্টোরে একটি সফল বার্তা পাঠায়।
  4. কনভেনিয়েন্স স্টোর জানায় যে লেনদেনটি ব্যবহারকারীর কাছে একটি সফলতা ছিল এবং পণ্যগুলি শীঘ্রই ব্যবহারকারীর কাছে পৌঁছে দেওয়া হবে।
  5. পেমেন্ট ইন্টিগ্রেটর সার্ভার Google এর সার্ভারে একটি বার্তা পাঠায় যে রেফারেন্স নম্বর প্রদান করা হয়েছে ( referenceNumberPaidNotification )। এই ধাপটি ধাপ 4 ব্লক করা উচিত নয়।
  6. Google সার্ভার পেমেন্ট ইন্টিগ্রেটর সার্ভারে সাফল্যের বার্তা দিয়ে সাড়া দেয়।

রেফারেন্স নম্বর বাতিল করুন

রেফারেন্স নম্বর Google দ্বারা বাতিল করা যেতে পারে. যদি Google একটি রেফারেন্স নম্বর বাতিল করে, তাহলে cancelReferenceNumber পদ্ধতিতে কল করা হবে। এই কলটি সফলভাবে প্রত্যাবর্তনের পরে, সেই রেফারেন্স নম্বরটি প্রদান করা অবৈধ, এবং ইন্টিগ্রেটরকে অবশ্যই এই নম্বরের জন্য অর্থপ্রদান প্রত্যাখ্যান করতে হবে। এই কলটি সফল হলে, referenceNumberPaidNotification নোটিফিকেশনে সমস্ত ভবিষ্যতের কল ব্যর্থ হবে৷

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

পরবর্তী: রেমিট্যান্স প্রবাহ