שילוב Apple Pay: מאימות ועד טוקנים
אנו משלבים את Apple Pay עבור האתר שלך, ומטפלים בכל דבר מאימות דומיין ועד עיבוד טוקנים. שגיאת 404 בקובץ האימות היא סיבה נפוצה לכך שהשירות לא מופיע באתר שלך—אבל אנחנו פותרים את זה תוך שעה. בפרויקט מסחר אלקטרוני אחד, לאחר יישום Apple Pay, ההמרה עלתה ב-15% תוך חודש, וערך ההזמנה הממוצע גדל ב-8%. לקוחות התחילו לשלם על פריטים יקרים יותר בתדירות גבוהה יותר. ההמרה גדלה ב-10–20% על ידי הפחתת חיכוך בתשלום. אנו משתלבים עם כל שער תשלום: Stripe, CloudPayments, Tinkoff, Sberbank. צור קשר כדי להעריך את הפרויקט שלך—אנו נבחר את שער התשלום האופטימלי ונחשב את התקציב.
איך Apple Pay מגביר המרה?
Apple Pay מקצר את זמן התשלום ל-10 שניות. משתמשים לא צריכים להזין פרטי כרטיס או כתובות—הכל נמשך מ-Wallet. בהתבסס על הנתונים שלנו, ההמרה במובייל עולה ב-12–18%, ונטישת עגלת הקניות יורדת ב-25%. זה בולט במיוחד עם פריטים בעלי ערך גבוה: לקוחות נוטים פחות לשנות את דעתם כאשר התשלום הוא במרחק נגיעה אחת. בנוסף, ערך ההזמנה הממוצע עולה ב-8%, וההכנסות הכוללות יכולות לראות עלייה של 15%. עבור חנות עם הכנסות חודשיות של $50,000, זה אומר תוספת של $7,500 בחודש.
דרישות טכניות ואימות דומיין
דרישות בסיסיות
- HTTPS עם תעודת SSL תקפה (תעודות חתומות עצמית לא עובדות)
- Safari או Chrome ב-iOS/macOS עם כרטיס שנוסף ל-Wallet
- אימות דומיין בחשבון Apple Developer
- תמיכה ב-Apple Pay בשער התשלום שלך
אימות דומיין
עבור כל דומיין שמקבל את מערכת התשלום, עליך להשלים אימות:
- הורד את קובץ האימות מהגדרות הסוחר של Apple Pay (Stripe Dashboard, לוח CloudPayments, או Apple Developer)
- הנח אותו בנתיב המדויק:
https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association(ללא הפניות, מוגש עם Content-Typetext/plain) - ודא שהקובץ מחזיר HTTP 200 באמצעות
location /.well-known/apple-developer-merchantid-domain-association { root /var/www/well-known; default_type text/plain; }או דפדפן
location /.well-known/apple-developer-merchantid-domain-association {
root /var/www/well-known;
default_type text/plain;
}ב-Laravel, הקובץ מוגש דרך ראוט—אנו מגדירים זאת במהלך הפריסה.
מה לעשות אם קובץ האימות לא נמשך
בדוק שהקובץ נגיש בנתיב `/.well-known/apple-developer-merchantid-domain-association` ומחזיר HTTP 200. שגיאות מתרחשות לעיתים קרובות עקב נתיב שגוי או קובץ חסר בספריית השורש. אם אתה משתמש ב-Nginx, ודא שבלוק המיקום לא נדרס.שלבי שילוב
-
אימות דומיין – הנח את קובץ האימות ב-
PaymentElement(שעה). - הגדרת חשבון סוחר – הירשם ב-Apple Developer (1–2 ימים).
- שילוב Payment Request API – פיתוח ובדיקות (2–3 ימים).
- בדיקות Sandbox – אימות עם כרטיסי בדיקה (יום אחד).
- פריסה לייצור – הגדרת דומיינים ו-SSL (0.5 יום).
שילוב דרך שערי תשלום
שילוב Stripe
Stripe מטפל בכל עבודת Apple Pay Merchant Certificate. לאחר אימות דומיין ב-Stripe Dashboard, הכפתור מופיע אוטומטית ב-import { PaymentElement, useStripe, useElements } from '@stripe/react-stripe-js'; function StripeCheckout() { const stripe = useStripe(); const elements = useElements(); const handleSubmit = async () => { await stripe?.confirmPayment({ elements: elements!, confirmParams: { return_url: 'https://example.com/payment/complete' }, }); }; return ( <form onSubmit={handleSubmit}> <PaymentElement /> <button type="submit">Оплатить</button> </form> ); } :
import { PaymentElement, useStripe, useElements } from '@stripe/react-stripe-js';
function StripeCheckout() {
const stripe = useStripe();
const elements = useElements();
const handleSubmit = async () => {
await stripe?.confirmPayment({
elements: elements!,
confirmParams: {
return_url: 'https://example.com/payment/complete'
},
});
};
return (
<form onSubmit={handleSubmit}>
<PaymentElement />
<button type="submit">Оплатить</button>
</form>
);
}כדי להציג רק כפתורי Apple Pay / Google Pay (ללא הטופס המלא), השתמש ב-Payment Request Button:
import { useStripe } from '@stripe/react-stripe-js';
import { useEffect, useState } from 'react';
function ExpressCheckout({ amount }: { amount: number }) {
const stripe = useStripe();
const [paymentRequest, setPaymentRequest] = useState<any>(null);
const [canPay, setCanPay] = useState(false);
useEffect(() => {
if (!stripe) return;
const pr = stripe.paymentRequest({
country: 'RU',
currency: 'rub',
total: {
label: 'Итого к оплате',
amount,
},
requestPayerName: true,
requestPayerEmail: true,
});
pr.canMakePayment().then(result => {
if (result) {
setPaymentRequest(pr);
setCanPay(true);
}
});
pr.on('paymentmethod', async (ev) => {
const { error } = await stripe.confirmCardPayment(clientSecret, {
payment_method: ev.paymentMethod.id,
});
if (error) {
ev.complete('fail');
} else {
ev.complete('success');
}
});
}, [stripe, amount]);
if (!canPay) return null;
return <PaymentRequestButtonElement options={{ paymentRequest }} />;
} שילוב CloudPayments
const widget = new cp.CloudPayments();
widget.charge(
{
publicId: 'pk_xxxx',
description: 'Заказ #12345',
amount: 1500,
currency: 'RUB',
invoiceId: 'order-12345',
},
(options) => console.log('success', options),
(reason) => console.error('fail', reason),
);CloudPayments מציג אוטומטית את כפתור Apple Pay במקום טופס הכרטיס הסטנדרטי כאשר המכשיר תומך בכך.
בדיקת תמיכה בצד הלקוח
function isApplePayAvailable(): boolean {
return (
typeof window !== 'undefined' &&
'ApplePaySession' in window &&
ApplePaySession.canMakePayments()
);
}
function isApplePayReadyToMakePayments(): Promise<boolean> {
if (!('ApplePaySession' in window)) return Promise.resolve(false);
return ApplePaySession.canMakePaymentsWithActiveCard('merchant.com.example.shop');
} בעיות נפוצות ופתרונות
שגיאה import { useStripe } from '@stripe/react-stripe-js'; import { useEffect, useState } from 'react'; function ExpressCheckout({ amount }: { amount: number }) { const stripe = useStripe(); const [paymentRequest, setPaymentRequest] = useState<any>(null); const [canPay, setCanPay] = useState(false); useEffect(() => { if (!stripe) return; const pr = stripe.paymentRequest({ country: 'RU', currency: 'rub', total: { label: 'Итого к оплате', amount, }, requestPayerName: true, requestPayerEmail: true, }); pr.canMakePayment().then(result => { if (result) { setPaymentRequest(pr); setCanPay(true); } }); pr.on('paymentmethod', async (ev) => { const { error } = await stripe.confirmCardPayment(clientSecret, { payment_method: ev.paymentMethod.id, }); if (error) { ev.complete('fail'); } else { ev.complete('success'); } }); }, [stripe, amount]); if (!canPay) return null; return <PaymentRequestButtonElement options={{ paymentRequest }} />; } —קובץ האימות לא נמצא או מחזיר 404. השתמש ב-curl כדי לבדוק אם הקובץ מחזיר 200 ב-const widget = new cp.CloudPayments(); widget.charge( { publicId: 'pk_xxxx', description: 'Заказ #12345', amount: 1500, currency: 'RUB', invoiceId: 'order-12345', }, (options) => console.log('success', options), (reason) => console.error('fail', reason), ); .
Apple Pay לא מופיע במכשיר בדיקה—ודא שהמכשיר משתמש בכרטיס הבדיקה של Apple Pay Sandbox (הוסף אותו בהגדרות → Wallet & Apple Pay → סביבת סימולטור → כרטיסי Sandbox).
הדומיין חייב להיות מאומת בנפרד עבור כל תת-דומיין. אימות function isApplePayAvailable(): boolean { return ( typeof window !== 'undefined' && 'ApplePaySession' in window && ApplePaySession.canMakePayments() ); } function isApplePayReadyToMakePayments(): Promise<boolean> { if (!('ApplePaySession' in window)) return Promise.resolve(false); return ApplePaySession.canMakePaymentsWithActiveCard('merchant.com.example.shop'); } אינו חל על "The domain yourdomain.com is not registered".
למה לבחור ב-Stripe לשילוב?
Stripe הופך את השילוב למהיר פי 3 מהגדרה ידנית דרך Apple Pay JS API. כל התעודות נוצרות אוטומטית, ורכיבי הממשק מתאימים את עצמם לדפדפן. CloudPayments הוא גם טוב לפרויקטים רוסיים אך דורש יצירת חשבון סוחר ידנית. Tinkoff עובד עבור המערכת האקולוגית, אך השילוב פחות שקוף. אנו בוחרים את שער התשלום האופטימלי עבור הפרויקט שלך. לפי תיעוד Apple Pay on the Web, שימוש בספק שירותי תשלום מוסמך מפחית את מורכבות השילוב.
| שער תשלום | תמיכה מקורית ב-Apple Pay | רכיבי ממשק | אימות דומיין | בדיקות Sandbox |
|---|---|---|---|---|
| Stripe | כן, מובנה | PaymentElement, Payment Request Button | אוטומטי ב-Dashboard | Sandbox מובנה |
| CloudPayments | כן, אוטומטית | CP Widget | דרך Apple Developer | הגדרת Sandbox ידנית |
| Tinkoff | דרך API | טופס משלו | דרך Apple Developer | נדרשת בקשת סוחר לבדיקה |
| שלב | תיאור | זמן משוער |
|---|---|---|
| אימות דומיין | הנח קובץ ב-.well-known | שעה |
| הגדרת חשבון סוחר | ב-Apple Developer | 1–2 ימים |
| שילוב Payment Request API | פיתוח ובדיקות | 2–3 ימים |
| בדיקות Sandbox | אימות בסביבת בדיקה | יום אחד |
| פריסה לייצור | הגדרת דומיינים, SSL | 0.5 יום |
תוצרים
- אימות דומיין (הנח קובץ ב-.well-known)
- הגדרת חשבון סוחר ב-Apple Developer
- שילוב Payment Request API או Stripe Elements
- בדיקות Sandbox וייצור
- תיעוד לצוות שלך
- הדרכת מנהלים על פעולות Apple Pay
- תמיכה לאחר השקה למשך 30 יום
יש לנו ניסיון של 10+ שנים בפיתוח אתרים ושילבנו את Apple Pay עבור 15+ פרויקטים—מחנויות מסחר אלקטרוני ועד שירותי מנויים. אנו מבטיחים תמיכה ועדכונים למודולי תשלום כאשר גרסאות API חדשות יוצאות. עלות שילוב: מ-$500 עד $2,000 בהתאם למורכבות. צור קשר כדי לקבל הערכת עלות וזמן מדויקת לשילוב המותאם לפרויקט שלך.
למד עוד על הטכנולוגיה בתיעוד Apple Pay.







