מידע על האופן שבו ה-Payment Request API פועל ברמה הכללית.
ממשק API של בקשת תשלום
כשלקוח מנסה לרכוש משהו מהאתר שלכם, האתר צריך לבקש מכם אישור הלקוח לספק פרטי תשלום, ואם תרצו, גם מידע נוסף כמו העדפת משלוח. אפשר לעשות זאת בקלות ובמהירות באמצעות Payment Request API (PR API).
מבנה בסיסי
כדי לבנות אובייקט PaymentRequest
נדרשים שני פרמטרים: תשלום
אמצעי תשלום ופרטי תשלום. בנוסף, פרמטר שלישי של אפשרויות תשלום
הוא אופציונלי. ניתן ליצור בקשה בסיסית כך:
const request = new PaymentRequest(paymentMethods, paymentDetails);
בואו נסתכל על המבנה של כל פרמטר ועל אופן השימוש בו.
אמצעי תשלום
הפרמטר הראשון, paymentMethods, הוא רשימה של אמצעי תשלום נתמכים ב:
במשתנה מסוג 'מערך'. כל רכיב במערך מורכב משני רכיבים:
supportedMethods
ואפשר גם data
.
עבור supportedMethods
, המוכר צריך לציין אמצעי תשלום
מזהה
כמו https://bobbucks.dev/pay
. הקיום של data
והתוכן שלו תלויים בנושאים
תוכן supportedMethods
והעיצוב של ספק אפליקציית התשלום.
ספק אפליקציית התשלומים צריך לספק את שני הפרטים האלה.
// Supported payment methods
const paymentMethods = [{
supportedMethods: 'https://bobbucks.dev/pay',
data: {
... // Optional parameters defined by the payment app provider.
}
}];
מידע על תשלומים
הפרמטר השני, paymentDetails, מועבר כאובייקט ומציין
פרטי התשלום של העסקה. הוא מכיל את הערך הנדרש total
,
שמציין את הסכום הכולל לתשלום מהלקוח. הפרמטר הזה יכול גם
לציין את הפריטים שנרכשו.
בדוגמה הבאה, הרשימה של הפריטים האופציונליים שנרכשו (רק פריט אחד, לדוגמה) מוצג, כמו גם הסכום הכולל הנדרש לתשלום. בשני המקרים המטבע מצוין בכל סכום.
const paymentDetails = {
displayItems: [{
label: 'Anvil L/S Crew Neck - Grey M x1',
amount: { currency: 'USD', value: '22.15' }
}],
total: {
label: 'Total due',
amount: { currency: 'USD', value : '22.15' }
}
};
בדיקה אם אמצעי התשלום זמין
Chrome בודק אם המשתמש והסביבה מוכנים לביצוע תשלום
במהלך היצירה של אובייקט PaymentRequest
.
כדי לבדוק אם המשתמש והסביבה מוכנים לבצע תשלום, צריך להתקשר
canMakePayment()
לפני הפעלת הליך התשלום. ביצוע שיחה
הפונקציה canMakePayment()
מחזירה true
אם הדפדפן תומך בתשלום אחד לפחות
ה-method שצוין באובייקט.
request.canMakePayment().then(result => {
if (result) {
// This browser supports the specified payment method.
} else {
// This browser does NOT support the specified payment method.
}
}).catch(e => {
// An exception
});
מידע נוסף על PaymentRequest.canMakePayment() ב-MDN
השיטה show()
אחרי הגדרת שני הפרמטרים ויצירת האובייקט request
כמו שמוצג
שלמעלה, אפשר לקרוא לשיטה show()
, שמציגה את המשתמש של אפליקציית התשלומים
גרפי.
request.show().then(response => {
// [process payment]
// send to a PSP etc.
response.complete('success');
});
ממשק המשתמש של אפליקציית התשלומים תואם לגמרי לאפליקציית התשלומים ספק. אחרי שהלקוח מסכים לבצע תשלום, אובייקט JSON מועבר למוכר שמכיל את כל הפרטים הנדרשים להעברת כסף. לאחר מכן המוכר יכול לשלוח אותו ל-PSP לעיבוד התשלום.
לסיום, אפשר לסגור את ממשק המשתמש של בקשת התשלום. לשם כך, צריך להשלים את התהליך עם
response.complete('success')
או response.complete('fail')
, בהתאם
שה-PSP מחזיר.