Payment Request API'nin genel işleyiş şeklini öğrenin.
Payment Request API
Bir müşteri web sitenizden bir ürün satın almaya çalıştığında site, müşteriden ödeme bilgilerini ve isteğe bağlı olarak kargo tercihi gibi diğer bilgileri sağlamasını istemelidir. Bunu Payment Request API (PR API)'yi kullanarak kolayca ve hızlıca yapabilirsiniz.
Temel yapı
PaymentRequest
nesnesi oluşturmak için iki parametre gerekir: ödeme yöntemleri ve ödeme ayrıntıları. Ayrıca, üçüncü bir ödeme seçenekleri parametresi isteğe bağlıdır. Temel bir istek şu şekilde oluşturulabilir:
const request = new PaymentRequest(paymentMethods, paymentDetails);
Her parametrenin nasıl oluşturulduğuna ve kullanıldığına bakalım.
Ödeme yöntemleri
İlk parametre olan paymentMethods, bir dizi değişkeninde desteklenen ödeme yöntemlerinin listesidir. Dizideki her öğe iki bileşenden oluşur: supportedMethods
ve isteğe bağlı olarak data
.
supportedMethods
için satıcının https://bobbucks.dev/pay
gibi bir ödeme yöntemi tanımlayıcısı belirtmesi gerekir. data
öğesinin varlığı ve içeriği, supportedMethods
öğesinin içeriğine ve ödeme uygulaması sağlayıcının tasarımına bağlıdır.
Her iki bilgi de ödeme uygulaması sağlayıcısı tarafından sağlanmalıdır.
// Supported payment methods
const paymentMethods = [{
supportedMethods: 'https://bobbucks.dev/pay',
data: {
... // Optional parameters defined by the payment app provider.
}
}];
Ödeme ayrıntıları
İkinci parametre olan paymentDetails, nesne olarak iletilir ve işlemle ilgili ödeme ayrıntılarını belirtir. Müşteriden alınması gereken toplam tutarı belirten zorunlu total
değerini içerir. Bu parametre, isteğe bağlı olarak satın alınan öğeleri de listeleyebilir.
Aşağıdaki örnekte, isteğe bağlı olarak satın alınan öğeler listesi (bu örnekte yalnızca bir öğe) ve ödenmesi gereken toplam tutar gösterilmektedir. Her iki durumda da para birimi, her bir tutarla birlikte belirtilir.
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' }
}
};
Ödeme yönteminin kullanılıp kullanılamayacağını kontrol etme
Chrome, PaymentRequest
nesnesi oluşturulurken kullanıcının ve ortamın ödeme yapmaya hazır olup olmadığını kontrol eder.
Kullanıcının ve ortamın ödeme yapmaya hazır olup olmadığını kontrol etmek için ödeme prosedürünü çağırmadan önce canMakePayment()
işlevini çağırın. Tarayıcı, nesnede belirtilen en az bir ödeme yöntemini destekliyorsa canMakePayment()
çağrısı true
döndürür.
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
});
MDN'deki PaymentRequest.canMakePayment() hakkında daha fazla bilgi edinin.
show()
yöntemi
İki parametreyi ayarladıktan ve yukarıda gösterildiği gibi request
nesnesini oluşturduktan sonra, ödeme uygulaması kullanıcı arayüzünü görüntüleyen show()
yöntemini çağırabilirsiniz.
request.show().then(response => {
// [process payment]
// send to a PSP etc.
response.complete('success');
});
Ödeme uygulaması kullanıcı arayüzünün görünümü tamamen ödeme uygulaması sağlayıcıya bağlıdır. Müşteri ödeme yapmayı kabul ettikten sonra, para aktarmak için gereken tüm bilgileri içeren bir JSON nesnesi satıcıya iletilir. Satıcı daha sonra ödemeyi işlemek için bu anahtarı PSP'ye gönderebilir.
Son olarak, PSP'nin döndürdüğü sonuca bağlı olarak işlemi response.complete('success')
veya response.complete('fail')
ile tamamlayarak Ödeme İsteği kullanıcı arayüzünü kapatabilirsiniz.
Sıradaki
Web ödemeleri hakkında daha fazla bilgi edinin.