تغییر مسیر FOP
بررسی اجمالی
Google Standard Payments از فرمهای پرداخت مبتنی بر تغییر مسیر (FOP) پشتیبانی میکند. یک FOP تغییر مسیر به کاربران محصولات یا خدمات Google امکان میدهد تا هزینه آنها را در رابط وب یک نهاد خارجی پرداخت کنند. در سطح بالایی، کاربری که میخواهد برای کالاها پرداخت کند، ابتدا به یکپارچهساز پرداخت یا به صادرکنندهای هدایت میشود که از طریق یکپارچهساز پرداخت در دسترس است. اگر کاربر به یکپارچهساز هدایت شود، ادغامکننده باید کاربر را برای تکمیل خرید به رابط وب صادرکننده ارسال کند. پس از تکمیل پرداخت، کاربر باید از طریق یکپارچه ساز به Google هدایت شود.
Google از دو جریان اصلی برای تکمیل پرداخت FOP تغییر مسیر استفاده می کند:
- شروع تغییر مسیر: دو جریان مختلف وجود دارد که می تواند یک پرداخت تغییر مسیر را آغاز کند. یکپارچهساز پرداخت فقط باید یکی از این گزینهها را اجرا کند:
- شروع جریان تغییر مسیر : با هدایت کاربر به یکپارچهساز پرداخت، پرداخت را آغاز میکند.
- ایجاد جریان URL پرداخت تغییر مسیر : Google با ارسال یک درخواست سرور به سرور به یکپارچهساز پرداخت، پرداخت را آغاز میکند تا URL پرداخت تغییر مسیر ایجاد کند. بر اساس پاسخ، گوگل کاربر را مستقیماً به صادر کننده هدایت می کند.
- جریان تغییر مسیر کامل : هنگامی که کاربر خرید را کامل کرد، ادغام کننده از این جریان برای تأیید پرداخت با Google استفاده می کند.
در نهایت، تمام جابجایی پول بین بانک ادغامکننده و بانک Google در جریان حواله انجام میشود.
تغییر مسیر نمای کلی FOP
شکل زیر یک نمای کلی از جریان ها را نشان می دهد:
در سطح بالایی، افزودن سرویس خود به عنوان نوعی پرداخت به محصولات Google شامل این جریانها میشود:
- شروع تغییر مسیر:
- جریان تغییر مسیر را کامل کنید
- جریان بازپرداخت
- جریان حواله
مفاهیم و اصطلاحات
{% if "standard-payments" در dynamic_data.request.path %} {% setvar documentation_base_path %}/standard-payments{% endsetvar %} {% elif "pay/banking-fop-v2" در 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" در 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" در dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/card-management-v1{% endsetvar %} {% setvar spec_name %}card-management-v1{% endsetvar %} {% elif "pay/carriers-v1" در dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/carriers-v1{% endsetvar %} {% setvar spec_name %}carriers-v1{% endsetvar %} {% elif "pay/carrier-wallets-v1" در 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" در 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" در 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" در dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/golden-fop-v1{% endsetvar %} {% setvar spec_name %}golden-fop-v1{% endsetvar %} {% elif "pay/facilitated-transaction-event-v2" در 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" در 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" در 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" در dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/one-time-payment-code-v1{% endsetvar %} {% setvar spec_name %}one-time-payment-code-v1{% endsetvar %} {% elif "pay/redirect-fop-v1" در 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" در dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/redirect-payment-token-v1{% endsetvar %} {% setvar spec_name %}redirect-payment-token-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 %}refundable-one-time-payment-code-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 %}refundable-one-time-payment-code-v2{% endsetvar %} {% elif "pay/value-on-device-fop-v1" در 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" در dynamic_data.request.path %} {% setvar documentation_base_path %}/pay/virtual-cards-v1{% endsetvar %} {% setvar spec_name %}virtual-cards-v1{% endsetvar %} {% endif %}نمادها و قراردادها
کلمات کلیدی "باید"، "نباید"، "الزامی"، "باید"، "نباید"، "باید"، "نباید"، "توصیه شده"، "ممکن است" و "اختیاری" در این اسناد هستند. همانطور که در RFC 2119 شرح داده شده است تفسیر شود.
مهر زمانی
همه مهرهای زمانی به عنوان میلی ثانیه از زمان یونیکس (1 ژانویه 1970) در UTC نشان داده می شوند.
مثلا:
- 23 آوریل 2019 8:23:25 بعد از ظهر به وقت گرینویچ = 1556051005000 میلی ثانیه
- 16 آگوست 2018 12:28:35 بعد از ظهر به وقت گرینویچ = 1534422515000 میلی ثانیه
مبالغ
مقادیر پولی در این API در قالبی به نام "micro" هستند که یک استاندارد در Google است. میکرو یک قالب دقیق و ثابت مبتنی بر عدد صحیح است. برای نمایش یک ارزش پولی در میکرو، ارزش ارز استاندارد را در 1,000,000 ضرب کنید.
مثلا:
- USD $1.23 = 1230000 میکرو USD
- USD $0.01 = 10000 میکرو USD
ناتوانی
همه فراخوانیهای متد در این API باید رفتار ناتوانی داشته باشند. Google بهطور پراکنده درخواستها را مجدداً امتحان میکند تا مطمئن شود که تراکنشها در هر دو طرف در یک وضعیت هستند. ادغام کننده ها نباید سعی کنند هر درخواستی را که قبلاً با موفقیت پردازش شده است، دوباره پردازش کنند. پاسخ برای پردازش موفقیت آمیز باید به جای آن گزارش شود. همه متدها یک RequestHeader
مشترک دارند که حاوی یک requestId است. این requestId کلید ناتوانی برای همه تماسها است.
هر پاسخ غیر پایانه ای (یک غیر HTTP 200-موفق)، نباید به صورت بی اختیار پردازش شود. بنابراین درخواستی که قبلاً یک 400 دریافت کرده است (درخواست بد/پیش شرط ناموفق)، وقتی برای بار دوم فراخوانی میشود، نباید 400 را به طور غیرقابل قبولی برگرداند، باید مجدداً ارزیابی شود. در ارزیابی مجدد، می تواند 400 را برگرداند یا با موفقیت پردازش شود.
برای اطلاعات بیشتر در مورد ناتوانی جنسی، این راهنمای دقیق را ببینید.
یکپارچه ساز
شرکتی که از پلتفرم پرداخت گوگل برای کسب و کار خود استفاده می کند. این می تواند داخلی (1P) باشد، مانند یوتیوب یا AdWords، همچنین می تواند یک تجارت خارجی (3P) باشد که می خواهد سرویس خود را برای کار با اکوسیستم Google یکپارچه کند.
FOP
فرم پرداخت. این کلی تر از یک ساز است. ویزا، مسترکارت و پی پال همگی FOP هستند.
ابزار
یک نمونه خاص از یک نوع پرداخت توسط یک مشتری خاص. به عنوان مثال، کارت اعتباری یک کاربر، یا حساب PayPal آنها. یک FOP توکن شده برای یک مشتری خاص نیز یک ابزار است، زیرا نمونه ای از نوعی پرداخت برای آن مشتری است که به طور ایمن در سیستم ما ذخیره می شود.
رمز
نمایشی، در سیستم Google، از روش پرداخت یک کاربر خاص. از آنجایی که حاوی تمام اطلاعات مورد نیاز برای خرید است، توکن نیز یک ابزار است. این ممکن است شامل اطلاعاتی مانند شماره حساب کاربر با یکپارچه ساز خود باشد.
جریان های کلیدی
جریان تغییر مسیر را شروع کنید
اولین مرحله در پرداخت تغییر مسیر، جریان شروع تغییر مسیر است. هدف از جریان شروع تغییر مسیر ، هدایت کاربر، از طریق یکپارچه ساز، به رابط وب صادرکننده انتخابی خود است تا بتواند پرداخت را مجاز کند. پس از تغییر مسیر، گوگل اطلاعات اولیه تراکنش را در اختیار ادغامکننده قرار میدهد، که به نوبه خود آن را به صادرکننده ارسال میکند.
برای اطلاعات بیشتر، بخش Begin Redirect flow را ببینید.
جریان تغییر مسیر را کامل کنید
هنگامی که کاربر در رابط وب صادرکننده قرار گرفت، باید تمام مراحل لازم برای تکمیل پرداخت را انجام دهد (این مراحل بسته به صادرکننده می تواند تغییر کند). به عنوان بخشی از جریان کامل تغییر مسیر ، صادرکننده باید کاربر را با اطلاعات مربوط به پرداخت موفق به ادغام کننده هدایت کند. ادغام کننده به نوبه خود کاربر را به Google هدایت می کند، از جمله جزئیات پرداخت به عنوان بخشی از پاسخ تغییر مسیر. پس از تأیید پرداخت، Google کالا یا خدمات خریداری شده را در اختیار کاربر قرار می دهد.
برای اطلاعات بیشتر، به بخش کامل جریان تغییر مسیر مراجعه کنید.