Web Payments kullanılarak yapılan bir ödeme işlemi, ödeme uygulamanızın keşfedilmesiyle başlar. Ödeme yöntemi ayarlama ve ödeme uygulamanızı satıcıların ve müşterilerin ödeme yapmasına hazır hale getirme hakkında bilgi edinin.
Yayınlanma tarihi: 27 Eylül 2017, Son güncelleme tarihi: 1 Temmuz 2025
Ödeme isteği API'siyle kullanılacak bir ödeme uygulamasının bir ödeme yöntemi tanımlayıcısıyla ilişkilendirilmesi gerekir. Bir ödeme uygulamasıyla entegre olmak isteyen satıcılar, bunu tarayıcıya bildirmek için ödeme yöntemi tanımlayıcısını kullanır. Bu makalede, ödeme uygulaması keşfinin nasıl çalıştığı ve ödeme uygulamanızı bir tarayıcı tarafından düzgün şekilde keşfedilip çağrılacak şekilde nasıl yapılandıracağınız açıklanmaktadır.
Web ödemeleri veya ödeme uygulamaları üzerinden ödeme işlemlerinin işleyiş şekli hakkında bilgi edinmek istiyorsanız önce aşağıdaki makaleleri okuyun:
Tarayıcı desteği
Web Ödemeleri, birkaç farklı teknolojiden oluşur ve destek durumu tarayıcıya bağlıdır.
Tarayıcılar ödeme uygulamalarını nasıl keşfeder?
Her ödeme uygulamasının aşağıdakileri sağlaması gerekir:
- URL tabanlı ödeme yöntemi tanımlayıcısı
- Ödeme yöntemi manifesti (ödeme yöntemi tanımlayıcısı üçüncü tarafça sağlanmadığı durumlar hariç)
- Web uygulaması manifesti
Keşif süreci, satıcı bir işlemi başlattığında başlar:
- Tarayıcı, ödeme yöntemi tanımlayıcısı URL'sine bir istek gönderir ve ödeme yöntemi manifestini getirir.
- Tarayıcı, web uygulaması manifest URL'sini ödeme yöntemi manifestinden belirler ve web uygulaması manifestini getirir.
- Tarayıcı, web uygulaması manifestinden işletim sistemi ödeme uygulamasını mı yoksa web tabanlı ödeme uygulamasını mı başlatacağına karar verir.
Sonraki bölümlerde, tarayıcıların keşfedebilmesi için kendi ödeme yönteminizi nasıl ayarlayacağınız ayrıntılı olarak açıklanmaktadır.
1. adım: Ödeme yöntemi tanımlayıcısını sağlayın
Ödeme yöntemi tanımlayıcısı, URL tabanlı bir dizedir. Örneğin, Google Pay'in tanımlayıcısı https://google.com/pay'dır. Ödeme uygulaması geliştiricileri, üzerinde kontrol sahibi oldukları ve rastgele içerik ile HTTP üst bilgileri sunabildikleri sürece herhangi bir URL'yi ödeme yöntemi tanımlayıcısı olarak seçebilir. Bu makalede, ödeme yöntemi tanımlayıcısı olarak https://bobbucks.dev/pay kullanılacaktır.
Satıcılar, ödeme yöntemi tanımlayıcısını nasıl kullanır?
Bir PaymentRequest nesnesi, satıcının kabul etmeye karar verdiği ödeme uygulamalarını tanımlayan ödeme yöntemi tanımlayıcılarının listesiyle oluşturulur. Ödeme yöntemi tanımlayıcıları, supportedMethods özelliğinin değeri olarak ayarlanır. Örneğin:
[merchant] ödeme isteğinde bulunuyor:
const request = new PaymentRequest([{
supportedMethods: 'https://bobbucks.dev/pay'
}], {
total: {
label: 'total',
amount: { value: '10', currency: 'USD' }
}
});
2. adım: Ödeme yöntemi manifestini sunun
Ödeme yöntemi manifesti, bu ödeme yöntemini hangi ödeme uygulamasının kullanabileceğini tanımlayan bir JSON dosyasıdır.
Ödeme yöntemi manifestini sağlama
Bir satıcı ödeme işlemi başlattığında tarayıcı, ödeme yöntemi tanımlayıcısı URL'sine bir HTTP
HEAD isteği gönderir. Ödeme yöntemi tanımlayıcısı URL'si, tarayıcının ödeme yöntemi manifestini getirebileceği URL'yi işaret eden bir Link HTTP üst bilgisiyle yanıt verir.
Ödeme yöntemi sunucusunu, rel="payment-method-manifest" özelliğini ve ödeme yöntemi manifestosu URL'sini içeren bir HTTP Link üstbilgisiyle yanıt verecek şekilde yapılandırın. Örneğin, manifest https://bobbucks.dev/pay/payment-manifest.json konumundaysa yanıt üstbilgisinde şunlar yer alır:
Link: <https://bobbucks.dev/pay/payment-manifest.json>; rel="payment-method-manifest"
URL, tam nitelikli bir alan adı veya göreli yol olabilir. Örnek görmek için ağ trafiği açısından
https://bobbucks.dev/pay öğesini inceleyin. Ayrıca curl komutunu da kullanabilirsiniz:
curl --include https://bobbucks.dev/pay
Tarayıcı, ödeme yöntemi manifest URL'sine bir HTTP GET isteği gönderir. Sunucu, ödeme yöntemi manifest gövdesiyle yanıt verir.
Ödeme yöntemi manifestinde iki alan bulunur: default_applications ve
supported_origins.
| Mülk adı | Açıklama |
|---|---|
default_applications (zorunlu) |
Ödeme uygulamalarının barındırıldığı web uygulaması manifestlerine işaret eden bir URL dizisi. (URL göreli olabilir.) Bu dizinin geliştirme manifestine, üretim manifestine vb. referans vermesi beklenir. |
supported_origins |
Aynı ödeme yöntemini uygulayan üçüncü taraf ödeme uygulamalarını barındırabilecek kaynaklara işaret eden bir URL dizisi. Bir ödeme yönteminin birden fazla ödeme uygulaması tarafından uygulanabileceğini unutmayın. |
Ödeme yöntemi manifest dosyası şu şekilde görünmelidir:
[payment handler] /payment-manifest.json:
{
"default_applications": ["https://bobbucks.dev/manifest.json"],
"supported_origins": [
"https://alicepay.friendsofalice.example"
]
}
Tarayıcı default_applications alanını okuduğunda, desteklenen ödeme uygulamalarının web uygulaması manifestlerine giden bağlantıların listesini bulur.
3. adım: Web uygulaması manifesti sunun
Web uygulaması manifesti, adından da anlaşılacağı gibi bir web uygulamasını tanımlamak için kullanılır. Bu, progresif web uygulamalarını (PWA) tanımlamak için yaygın olarak kullanılan bir manifest dosyasıdır.
Tipik bir web uygulaması manifesti şöyle görünür:
[payment handler] /manifest.json:
{
"name": "Pay with Bobpay",
"short_name": "Bobpay",
"description": "This is an example of the Payment Handler API.",
"icons": [
{
"src": "images/manifest/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "images/manifest/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"serviceworker": {
"src": "service-worker.js",
"scope": "/",
"use_cache": false
},
"start_url": "/",
"display": "standalone",
"theme_color": "#3f51b5",
"background_color": "#3f51b5",
"related_applications": [
{
"platform": "play",
"id": "com.example.android.samplepay",
"min_version": "1",
"fingerprints": [
{
"type": "sha256_cert",
"value": "4C:FC:14:C6:97:DE:66:4E:66:97:50:C0:24:CE:5F:27:00:92:EE:F3:7F:18:B3:DA:77:66:84:CD:9D:E9:D2:CB"
}
]
}
]
}
Web uygulaması manifestinde açıklanan bilgiler, ödeme uygulamalarının ödeme isteği kullanıcı arayüzünde nasıl görüneceğini tanımlamak için de kullanılır.
| Mülk adı | Açıklama |
|---|---|
name (zorunlu)
|
Ödeme uygulaması adı olarak kullanılır. |
icons (zorunlu)
|
Ödeme uygulaması simgesi olarak kullanılır. Bu simgeleri yalnızca Chrome kullanır. Ödeme aracı kapsamında belirtmediğiniz takdirde diğer tarayıcılar bunları yedek simge olarak kullanabilir. |
serviceworker
|
Web tabanlı ödeme uygulaması olarak çalışan hizmet çalışanını algılamak için kullanılır. |
serviceworker.src |
Service worker komut dosyasının indirileceği URL. |
serviceworker.scope |
Bir hizmet çalışanının kayıt kapsamını tanımlayan bir URL'yi temsil eden dize. |
serviceworker.use_cache |
Service worker komut dosyasının indirileceği URL. |
related_applications
|
İşletim sistemi tarafından sağlanan ödeme uygulaması olarak hareket eden uygulamayı algılamak için kullanılır. Daha fazla bilgiyi Android ödeme uygulamaları geliştirici kılavuzunda bulabilirsiniz. |
prefer_related_applications
|
Hem işletim sistemi tarafından sağlanan bir ödeme uygulaması hem de web tabanlı bir ödeme uygulaması kullanılabildiğinde hangi ödeme uygulamasının başlatılacağını belirlemek için kullanılır. |
Web uygulaması manifest dosyasının name özelliği ödeme uygulaması adı, icons özelliği ise ödeme uygulaması simgesi olarak kullanılır.
Chrome, hangi ödeme uygulamasının başlatılacağını nasıl belirler?
Platforma özel ödeme uygulamasını başlatma
Platforma özgü ödeme uygulamasının başlatılabilmesi için aşağıdaki koşulların karşılanması gerekir:
related_applicationsalanı, web uygulaması manifestinde belirtilir ve:- Yüklü uygulamanın paket kimliği ve imzası eşleşiyor. Web uygulaması manifestindeki minimum sürüm (
min_version), yüklü uygulamanın sürümünden küçük veya ona eşit.
- Yüklü uygulamanın paket kimliği ve imzası eşleşiyor. Web uygulaması manifestindeki minimum sürüm (
prefer_related_applicationsalanıtrue.- Platforma özel ödeme uygulaması yüklü olmalı ve:
org.chromium.action.PAYniyet filtresi.org.chromium.default_payment_method_nameözelliği için değer olarak belirtilen bir ödeme yöntemi tanımlayıcısı.
Bu uygulamaların nasıl ayarlanacağı hakkında daha fazla bilgi için Android ödeme uygulamaları: geliştirici kılavuzu başlıklı makaleyi inceleyin.
[payment handler] /manifest.json
"prefer_related_applications": true,
"related_applications": [{
"platform": "play",
"id": "xyz.bobpay.app",
"min_version": "1",
"fingerprints": [{
"type": "sha256_cert",
"value": "92:5A:39:05:C5:B9:EA:BC:71:48:5F:F2:05:0A:1E:57:5F:23:40:E9:E3:87:14:EC:6D:A2:04:21:E0:FD:3B:D1"
}]
}]
Tarayıcı, platforma özel ödeme uygulamasının kullanılabildiğini belirlediyse keşif akışı burada sonlandırılır. Aksi takdirde bir sonraki adıma (web tabanlı ödeme uygulamasını başlatma) geçilir.
Web tabanlı ödeme uygulamasını başlatma
Web tabanlı ödeme uygulaması, web uygulaması manifest dosyasının serviceworker alanında belirtilmelidir.
[payment handler] /manifest.json:
"serviceworker": {
"src": "payment-handler.js"
}
Tarayıcı, hizmet çalışanına bir paymentrequest
etkinliği göndererek web tabanlı ödeme uygulamasını başlatır. Hizmet çalışanının önceden kaydedilmesi gerekmez. Tam zamanında kaydedilebilir.
Özel optimizasyonları anlama
Tarayıcılar, ödeme isteği kullanıcı arayüzünü nasıl atlayıp doğrudan ödeme uygulaması başlatabilir?
Chrome'da, PaymentRequest yönteminin show() çağrıldığında Payment Request API, "Ödeme İsteği Kullanıcı Arayüzü" adlı tarayıcı tarafından sağlanan bir kullanıcı arayüzü görüntüler. Bu kullanıcı arayüzü, kullanıcıların bir ödeme uygulaması seçmesine olanak tanır. Ödeme isteği kullanıcı arayüzünde Devam düğmesine basıldıktan sonra seçilen ödeme uygulaması başlatılır.
Ödeme uygulaması başlatılmadan önce ödeme isteği kullanıcı arayüzünün gösterilmesi, kullanıcının ödemeyi tamamlaması için gereken adım sayısını artırır. Süreci optimize etmek için tarayıcı, bu bilgilerin doldurulmasını ödeme uygulamalarına devredebilir ve show() çağrıldığında Ödeme İsteği kullanıcı arayüzünü göstermeden doğrudan bir ödeme uygulaması başlatabilir.
Doğrudan ödeme uygulaması başlatmak için aşağıdaki koşulların karşılanması gerekir:
show(), kullanıcı hareketiyle (ör. fare tıklaması) tetiklenir.- Yalnızca tek bir ödeme uygulaması varsa:
- İstenen ödeme yöntemi tanımlayıcısını destekliyor.
Web tabanlı bir ödeme uygulaması ne zaman tam zamanında (JIT) kaydedilir?
Web tabanlı ödeme uygulamaları, kullanıcının ödeme uygulaması web sitesini önceden açıkça ziyaret etmesi ve hizmet çalışanını kaydetmesi gerekmeden başlatılabilir. Service worker, kullanıcı web tabanlı ödeme uygulamasıyla ödeme yapmayı seçtiğinde tam zamanında kaydedilebilir. Kayıt zamanlamasıyla ilgili iki varyasyon vardır:
- Ödeme isteği kullanıcı arayüzü gösterilirse uygulama tam zamanında kaydedilir ve kullanıcı Devam'ı tıkladığında başlatılır.
- Ödeme isteği kullanıcı arayüzü atlanırsa ödeme uygulaması tam zamanında kaydedilir ve doğrudan başlatılır. Ödeme isteği kullanıcı arayüzünü atlayarak anında kaydedilen bir uygulamayı başlatmak için kullanıcı hareketi gerekir. Bu, kaynaklar arası hizmet çalışanlarının beklenmedik şekilde kaydedilmesini önler.
Sonraki Adımlar
Ödeme uygulamanızın bulunabilirliğini sağladığınıza göre, platforma özel bir ödeme uygulaması ve web tabanlı bir ödeme uygulaması geliştirmeyi öğrenin.