גוגל מאמצת רשמית את ה-API של בקשת תשלום, ומאפשרת לך לשלם עם אפליקציות צד שלישי ב-Chrome

Google מאמצת רשמית את ה-API של בקשת תשלום לכרום, שתוכרז במהלך Google I/O, ומאפשרת לך לשלם באמצעות אפליקציות של צד שלישי.

אמור להתפרסם בכנס המפתחים של Google I/O הקרוב, ה-Payment Request API יחולל מהפכה באופן שבו אנו מבצעים תשלומים מקוונים במכשירים הניידים שלנו. משתמשי Google Chrome באנדרואיד כבר לא יצטרכו לעבור תהליכי תשלום ארוכים הכוללים הזנת פרטי כרטיס האשראי שלהם או כניסה ל-PayPal. במקום זאת, ה-API מאפשר למפתחי אתרים לשלוח כוונות ליישומי תשלום נתמכים של צד שלישי על מנת לבצע תשלום. בניגוד לרבים מה הפתעות אחרות ש-Google מחכה לנו, יש כבר המון מידע ציבורי על איך בדיוק הדרך החדשה הזו לתשלום תעבוד. צללנו לתוך כל המסמכים האלה כדי להביא לך קצת מידע לפני ההכרזה הרשמית של Google השבוע.


ביצוע תשלומים קל יותר עם ה-API של בקשת תשלום

תחילה נסקור את אופן הטיפול בתשלומים בדפדפני אינטרנט. כאשר אתה עובר לדף התשלום של כל סוחר מקוון, אתה מתבקש להזין את פרטי התשלום שלך. אתה יכול להוסיף כרטיס אשראי שנתמך על ידי הסוחר או להשתמש בשירות משולב כגון PayPal כדי להשלים את העסקה שלך. עכשיו, אלא אם כבר שמרת את פרטי כרטיס האשראי שלך באתר (מה שאנשים רבים נרתעים לעשות) או שכבר נרשמת ב-PayPal, זה יכול להיות טרחה לקום, ללכת לארנק, למצוא את הכרטיס שלך, ואז להזין את מספר הכרטיס, תאריך התפוגה והאבטחה קוד. בכל פעם שאתה רוצה לבצע רכישה באתר חדש, אתה צריך לעבור וריאציה כלשהי של תהליך זה. לאלו מאיתנו ש

אוהב לחפש עסקאות, זה יכול להיות מעצבן די מהר.

דפי תשלום מקוונים של סוחרים שונים

להרבה מוסדות אשראי ומוסדות בנק יש אפליקציות זמינות בחנות Google Play. מכיוון שאנו כבר משתמשים ביישומים אלה כדי לפקח על החשבונות הפיננסיים שלנו, מדוע איננו יכולים להשתמש בהם כדי לאמת תשלומים? זה בדיוק תהליך החשיבה מאחורי קבוצת העבודה של תשלומי אינטרנט, המורכבת מחברים כמו גוגל, מוזילה, סמסונג, עליבאבא, מיקרוסופט ועוד. הקבוצה הזו עבדה מאחורי הקלעים כדי לעשות זאת להציג API חדש בשם Payment Request API ותקן מקוון חדש המוגדר בהצעת מנשר התשלום על מנת להקל על התקשורת בין דפדפני אינטרנט וסוחרים מקוונים כך שהסוחר המקוון יוכל להשתמש ביישומים קיימים במכשיר של משתמש קצה על מנת לטפל בתשלומים.

איך זה עובד

על מנת לבצע משימה זו, דפדפני אינטרנט חייב לתמוך ב-Payment Request API, סוחרים מקוונים צריכים לתמוך ב-API על ידי יישום מה שנקרא a מזהה אמצעי תשלום, ויישומי אנדרואיד צריך ליישם שירותים חדשים. מבלי לפרט יותר מדי, אסביר בקצרה מה קורה במהלך תהליך התשלום.

בהנחה שדפדפן האינטרנט שלך תומך ב-Payment Request API (עוד על כך בהמשך), כאשר אתה מנווט לדף התשלום של סוחר מקוון תהיה לך אפשרות לשלם עם אחד ממטפלי התשלומים הנתמכים שלהם (כרטיס אשראי/PayPal/וכו') כשאתה מקיש על הכפתור כדי לבצע רכישה (כגון בדף לדוגמה למטה המשמש את אנשי גוגל כדי בדוק את ה-API של בקשת תשלום), ואז ה-API של בקשת תשלום שולח כוונה אנדרואיד לאפליקציית התשלום הנתמכת על מנת שאפליקציה זו תאמת את תַשְׁלוּם.

 נניח שיישום כרטיס האשראי ההיפותטי שלנו המותקן במכשיר אנדרואיד היפותטי נקרא Bob Pay. Bob Pay יוסיף את הדברים הבאים לקובץ AndroidManifest.xml שלהם:

"font-weight: 400;"><manifestspan><spanstyle="font-weight: 400;">package=span><spanstyle="font-weight: 400;">"com.bobpay.app"span><spanstyle="font-weight: 400;">>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".IsReadyToPayService"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: enabled=span><spanstyle="font-weight: 400;">"true"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.IS_READY_TO_PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">service>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".PaymentActivity"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.default_payment_method_name"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: value=span><spanstyle="font-weight: 400;">"https://bobpay.com/put/optional/path/here"span><spanstyle="font-weight: 400;">/>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">activity>span>
<spanstyle="font-weight: 400;">manifest>span>

כאשר נשלחת כוונה המכוונת ליישום כרטיס האשראי ההיפותטי הזה, השירות של יישום זה מופעל. כל המידע הדרוש לאפליקציית Bob Pay ההיפותטית שלנו כדי להבין מה נרכש, מאיזה ספק, ועבור כמה כסף כלול בתוספות של הכוונה:

Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);

לאחר ש-Bob Pay אימת את התשלום, ה-API של בקשת תשלום מקבל מידע זה בכוונה אחרת שנשלחה על ידי Bob Pay:

Intent result = new Intent();
Bundle extras = new Bundle();
extras.putString("key", "value");
result.putExtras(extras);
setResult(RESULT_OK, result); // Changeto RESULT_CANCELED on failure.
finish(); // Close the payment activity.

אבל איך הסוחר המקוון התומך ב-Bob Pay יודע שה-Bob Pay המותקן בטלפון שלך הוא Bob Pay האמיתי, ולא תוכנה זדונית שנועדה לבצע הונאה? זה משיג זאת על ידי יצירת קובץ JSON Manifest Manifest Identifier הניתן לקריאה במחשב על ידי הדפדפן.

{
<span ><span >"span>name<span >"span>span><span >:span><span ><span >"span>BobPay - World's Greatest Payment Method<span >"span>span>,
<span ><span >"span>description<span >"span>span><span >:span><span ><span >"span>This payment method changes lives<span >"span>span>,
<span ><span >"span>short_name<span >"span>span><span >:span><span ><span >"span>BobPay<span >"span>span>,
<span ><span >"span>icons<span >"span>span><span >:span> [{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.webp<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>,
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>image/webp<span >"span>span>
},{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.png<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>
}, {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/hd_hi<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>128x128<span >"span>span>
}],
<span ><span >"span>serviceworker<span >"span>span><span >:span> {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>payment-sw.js<span >"span>span>,
<span ><span >"span>scope<span >"span>span><span >:span><span ><span >"span>/pay<span >"span>span>,
<span ><span >"span>use_cache<span >"span>span><span >:span><span >falsespan>
}
<span ><span >"span>related_applications<span >"span>span><span >:span> [
{
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>play<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://play.google.com/store/apps/details? id=com.bobpay<span >"span>span>,
<span ><span >"span>fingerprints<span >"span>span><span >:span> [{
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>sha256_cert<span >"span>span>,
<span ><span >"span>value<span >"span>span><span >:span><span ><span >"span>59:5C: 88:65:FF: C4:E8:20:CF: F7:3E: C8...<span >"span>span>
}], <span >//newspan>
<span ><span >"span>min_version<span >"span>span><span >:span><span ><span >"span>1<span >"span>span>, <span >// newspan>
<span ><span >"span>id<span >"span>span><span >:span><span ><span >"span>com.example.app1<span >"span>span>
}, {
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>itunes<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://itunes.apple.com/app/example-app1/id123456789<span >"span>span>,
}
]
}

בתוך קובץ JSON זה יש חתימה המשמשת לאימות תקינות האפליקציה המותקנת במכשיר שלך שמתיימרת להיות אמיתי בוב שלם. אם בדיקת החתימה הזו נכשלת, Bob Pay לא יתקבל כמטפל בתשלומים.

כמובן, אני מאוד, מאוד, מאוד, מפשט יתר על המידה את התהליך הכללי הכרוך כאן. תשלומים הם מערכת מורכבת להפליא הדורשת שכבות מרובות של בדיקות אבטחה על מנת להבטיח שרק תשלומים תקפים מתבצעים. שלושת המסמכים שקישרתי אליהם קודם מתארים כיצד הדפדפן מיישם במלואו את ה-API של בקשת תשלום, כיצד א האתר מיישם את קובץ המניפסט של JSON, וכיצד אפליקציית אנדרואיד יכולה להתמודד עם הכוונה שנשלחה על ידי בקשת התשלום ממשק API. להלן תרשים זרימה שמתאר את התהליך הכללי שסיכמתי למעלה:

תרשים זרימה של תשלומים. מָקוֹר: רוסלאן סולומחין

כפי שאתה יכול לראות, יש כאן הרבה שלבים מעורבים. כל השינויים הללו יטופלו על ידי מפתחים של אתרי סוחר מקוונים, בנקאות/אשראי אנדרואיד אפליקציות כרטיסים ומפתחי דפדפני אינטרנט, כך שלמשתמש הקצה סביר להניח שלא יהיה מושג מה באמת קורה כאן. אבל רק דעו שהתוצאה הסופית היא שהתשלומים המקוונים שלכם יהפכו להרבה יותר פשוטים אם כל הצדדים המעורבים ליישם את השינויים הללו, אשר הודות למאמצי הסטנדרטיזציה של קבוצת העבודה של תשלומי אינטרנט יהפכו מְצִיאוּת.


ההיסטוריה מאחורי ממשק API של בקשת תשלום

World Wide Web Consortium (בקיצור W3C) נוסד בשנת 1994 במטרה לפתח פלטפורמה סטנדרטים שיאפשרו לכל אתרי האינטרנט ולמשתמשים שלהם ליהנות מתאימות ו עֲקֵבִיוּת. על מנת להתמודד עם הפיצול הגובר של תשלומי אינטרנט, W3C הקים את קבוצת עבודה של תשלומי אינטרנט ב-2015 על מנת לתקן כמה היבטים של זרימת התשלומים המקוונת. לאחר מכן, החלה עבודה בקרב כל חברי קבוצת העבודה של תשלומי אינטרנט במטרה למצוא דרכים לשפר את אופן פעולתן של מערכות התשלומים המקוונות הקיימות.

הקבוצה הגיעה עם ה API לבקשת תשלום, אוסף של שיטות לאפשר לאתרים להשתמש באמצעי תשלום מבלי לשלב את אמצעי התשלום באתר שלהם. יש לעדכן דפדפני אינטרנט כדי לתמוך ב-API, אבל החלק הקשה יותר נובע להעלות סוחרים מקוונים על הסיפון. לשם כך, חברי קבוצת העבודה העלה הצעה כיצד אתרים יכולים ליצור מזהים כדי להגדיר באילו שיטות תשלום הם תומכים. זה כרוך ביצירת קובץ JSON של Manifest Manifest הניתן לקריאה במכונה (מזהה שיטת התשלום) - הוא צריך להיקרא על ידי הדפדפן כך שה API של בקשת תשלום יכול לזהות אם למשתמש יש אחד או יותר מהאפליקציות התואמות לשיטות התשלום הנתמכות שזוהו ב-JSON קוֹבֶץ. יישום זה הוא בהשראת של גוגל פרוטוקול קישורי נכסים דיגיטליים כך אתרי אינטרנט מפנים אותך מאתר הנייד שלהם לאפליקציה שלהם אם כבר התקנת אותו.

לאחר הרבה פנים הלוך ושוב של הקבוצה, בסופו של דבר ב-25 בנובמבר 2016, זאק קוך מגוגל ודאפנג ליו מעליבאבא הגישו טיוטה ראשונית של מניפסט אמצעי התשלום על מנת להתחיל את תהליך הסטנדרטיזציה עבור מזהי אמצעי תשלום שכל החברים יכלו להסכים להם. בסופו של דבר, חברי קבוצת העבודה נפגש באופן אישי בשיקגו בין ה-23-24 במרץ על מנת לחלץ את ה-API של בקשת תשלום, את הצעת מנשר התשלום ועוד. קבוצת העבודה הצביעו לאימוץ רשמי גרסה חדשה של הצעת מנשר התשלום (גרסה 2), וזה המקום בו אנו עומדים היום.


תמיכה ב-Payment Request API

ב-10 במאי, תמיכה באפליקציות תשלום אנדרואיד של צד שלישי מופעל כברירת מחדל ב-Chromium מאז אישור המניפסט לתשלום באינטרנט בענף blink-dev (מצמוץ הוא השם של מנוע העיבוד שבו השתמש Chrome). שים לב שהתכונה הזו נבדקת ב-Chrome במשך חודשים, אבל רק לאחרונה נראה שהקבוצה מוכנה להתקדם עם זה. תכונה זו תישלח כל הפלטפורמות/גרסאות של Chromium פרט ל-Android Webview (שאין לו ממשק משתמש ולכן אינו יכול ליישם את ה-API של בקשת תשלום).

רק לאחר חודשים של עבודה מאחורי הקלעים, כעת אנו הולכים לראות את היתרונות של מה שקבוצת העבודה של תשלומי אינטרנט עבדה עליו. ב-Google I/O החברה צפויה להכריז ש-Google Chrome יישלח עם ה-Payment Request API מופעל, וזאק קוך הזכיר מוקדם יותר יעביר את ההרצאה שלו ביום חמישי על האופן שבו ספקי תשלומים של צד שלישי יכולים לתמוך ב-API על ידי בניית JSON של Manifest Manifest קבצים.

דפדפנים אחרים פועלים גם הם להוספת תמיכה עבור ה-API של בקשת תשלום. מוזילה וסמסונג הביעו תמיכה פומבית בהוספת ה-API לפי גוגלר רוסלאן סולומחין עדיין לא ידוע אם דפדפן Edge של מיקרוסופט או ספארי של אפל יוסיפו תמיכה. עלינו לשים לב שמיקרוסופט כן כבר בודקים את ה-API של בקשת תשלום עבור אפליקציות Universal Windows Platform (UWP). ובשעה לפחות בנק אחד כבר הטמיע תמיכה (Monzo) באפליקציה שלהם.

באשר לסוחרים מקוונים אחרים ואפליקציות אנדרואיד שיתמכו במפרט התשלום החדש הזה, על פי גוגלר זך קוך:

מספר "ספקי אמצעי התשלום" שיצטרכו ליישם את המפרט הזה הוא די קטן (מאות), וכרגע אנחנו עובדים ישירות רק עם תת-קבוצה קטנה מאוד של אלה (<5) כדי לבדוק המים. אם אכן נקלענו למצב שבו היינו צריכים לשנות את אחד התחומים, אני חושב שנוכל לעשות זאת בקלות וללא סיכון אינטררופי רב (אם בכלל). כל השותפים המוקדמים שלנו מודעים לכך שהמפרט הזה יכול להשתנות והם בסדר עם זה.

פרסום זה הוא קריטי כדי לאפשר לשחקנים אחרים להשתתף באקוסיסטם יחסי הציבור, לפחות באנדרואיד. אני באמת מעדיף לא ללכת במסלול הקנייני המלא כדי לאפשר אפליקציות מקוריות לאנדרואיד. שמרנו על טביעת הרגל על ​​זה בכוונה קטנה כדי להשאיר מקום לצמיחה ולמקרי שימוש מתקדמים יותר.

לפיכך, אנו יכולים לראות שלמרות שגוגל היא חלוצת התמיכה ב-Payment Request API, ייקח קצת זמן עד שנראה באמת את הדרך החדשה הזו לתשלום מוצאת את דרכה לכל הדפדפנים, כל הסוחרים המקוונים וכל היישומים. אני אישית מאוד נרגש לראות את ה-API של בקשת תשלום נתמך על ידי Google. מערכת המסחר האלקטרוני מקוטעת ללא צורך באמצעי תשלום במשך שנים, ואם ה-API החדש הזה כלומר, לעולם לא אצטרך להזין את פרטי כרטיס האשראי שלי באופן ידני לאתר אינטרנט, אז אני בעד זה.


מה דעתך על הסטנדרט הקרוב הזה? תשמעו בתגובות וספרו לנו את דעתכם!