إذن في Apple Pay لأصغر

إذن في Apple Pay لأصغر


سيتم دفع الانتباه إلى نقطة محددة - وهذا هو الحصول على تشفير من Apple بعد أن مرّ TouchID أو FaceID. اللغة الخلفية ستكون PHP.


اسمي ألكساندر ، أنا مبرمج PHP جديد في موغوتا ، واضطررت إلى مواجهة تكامل Apple Pay في Moguta.CMS في طريقي. سأخبرك اليوم عن كيفية تفويض نفسك من خلال Apple Pay لإجراء المدفوعات دون الخوض في مواد الاتصالات والشهادات الآمنة ، حيث لم يكن لدي ما يكفي من هذه المواد في بداية رحلتي.


مقدمة


لن أرسم هنا الورقة بالكامل لتقديم Apple Pay إلى موقعي. تتوفر إرشادات حول كيفية تسجيل حساب مطور Apple ، حيث يتم إجراء شهادة معالجة الدفع ، حيث يتم إرسال الإجابة المستلمة ، على RuNet ، ما عليك سوى مطالبة Google "بتكامل apple pay على الموقع" وتحديد مجمع الدفع الذي تريده ، والذي سيوضح جميع الخطوات اللازمة بالتفصيل الإجراءات.


مراجعة قصيرة


سيكون الحد الأدنى لمتطلبات هذه التعليمات هو توفر نظام MacOS للعمل مع المفاتيح ، لأن العمل مع الشهادات على أنظمة تشغيل أخرى هو بالفعل مادة منفصلة ، والتي لن ألاحظها هنا.


دعونا أولا معرفة أين سيكون مكان القتال لدينا. الخوارزمية هي كما يلي:


  1. يبدأ المستخدم عملية الدفع من خلال Apple Pay في المتجر عبر الإنترنت ؛
  2. يرسل المتجر عبر الإنترنت معلومات الدفع إلى Apple ؛
  3. تتجاوب Apple مع رابط لبيانات البائع ؛
  4. يرسل المتجر عبر الإنترنت بيانات البائع عبر رابط من خلال بروتوكول TLS ثنائي الاتجاه ؛
  5. Apple ترسل بيانات تحتوي على PaymentData؛
  6. المخزن عبر الإنترنت يعيد توجيه PaymentData إلى بوابة الدفع ومعالجة الاستجابة ؛

نحن مهتمون بالنقطة الرابعة ، حيث أن طلب الضفيرة المعتاد غير كافٍ.


نحصل على شهادات


لكي تصدق Apple أنها تتعامل معنا شخصيًا ، يتعين عليك أولاً الحصول على شهادة تحديد التاجر (حتى لا تخلط بينك وبين معالجة الدفع ، فهي ضرورية لبوابة الدفع). للبدء ، سنقوم بصياغة طلب شهادة وفقًا للتعليمات الرسمية . يتم إرفاق الملف الناتج بشهادة هوية Apple Pay Merchant لمعرف التاجر الخاص بك.


إنشاء شهادة


استجابة لذلك ، نحصل على merchant_id.cer ، والذي نضيفه إلى المجموعة. استنادًا إلى المفتاح الخاص ، نقوم بإنشاء ملف .p12. للقيام بذلك ، اتصل بقائمة السياق الخاصة بالمفتاح الخاص وحدد "تصدير ..."


تصدير إلى p12


نقوم بسحب المفتاح باستخدام الأمر التالي (ستكون كلمة المرور التي سيطلبها الجهاز هي كلمة المرور الخاصة بالمفتاح ، وسنحتاج إليها عند الاتصال بـ Apple)


openssl pkcs12 -in <  >.p12 -out ApplePay.key.pem -nocerts -nodes 

وتجاوز شهادة لدينا في بيم


  openssl x509 -inform der -in merchant_id.cer -out merchant_id.pem 

الآن لدينا جميع الملفات اللازمة التي سنثبت لخادم التفاح أننا نحن الذين ندعي أنها كذلك.


إرسال طلب


لقد أغفلنا لحظة تلقي رابط التحقق من الصحة ( اقرأ المزيد في مقال آخر حول Habr ) ، وننتقل إلى اللحظة التي أرسل فيها البرنامج النصي على JS في Safari طلبًا للحصول على ترخيص من خادمنا إلى Apple.


لهذا نستخدم PHP مع الضفيرة. مثال على الكود:


 $ch = curl_init(); $data = '{"merchantIdentifier":"<,      Merchan ID>", "domainName":"< ->", "displayName":"< -,       TouchID/FaceID>"}'; curl_setopt($ch, CURLOPT_URL, '<  Apple,   validationURL>'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_CERTINFO, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); curl_setopt($ch, CURLOPT_SSLCERT, '<  >.pem'); curl_setopt($ch, CURLOPT_SSLKEY, '<  >.pem'>); curl_setopt($ch, CURLOPT_SSLKEYPASSWD, '<  >'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); echo json_encode($res); 

نحن نسحب paymentData من الاستجابة المستلمة وأرسلها إلى بوابة الدفع الخاصة بنا. مبروك ، يتم تمرير إذن ، يمكنك صف المال.


تعليق


لم يسمح لي Fate بالفرح على الاتصال الثابت لفترة طويلة ، وأعطاني Apple الإجابة التالية:


 Payment Services Exception merchantId=< > unauthorized to service on behalf of merchantId=<  > reason=\"The latter is not registered for Apple Pay on the web\"" 

نص الرسالة غير واضح بما فيه الكفاية ، كما نود. المعلومات على الشبكة ، مرة أخرى ، لا. كما اتضح فيما بعد ، هذا يعني على الأرجح أنك أدخلت القيمة الخاطئة في حقل merchantIdentifier.


يؤدي


سأكون سعيدًا لسماع الاقتراحات أو النصائح أو الانتقادات في التعليقات.


آمل أن يفيد المقال نفس النفوس الضائعة كما أنا.

Source: https://habr.com/ru/post/ar460273/


All Articles