[JAVA] Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte

Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte

Einführung

Hallo. Dies ist T. K. von Navitime Japan Travel Development.

In letzter Zeit sind viele bargeldlose Zahlungs-Apps erschienen. Daher, um eine Website zu erreichen, die für Benutzer einfach zu verwenden ist Neben Kreditkarten erhöhen wir auch die Zahlungen im Internet.

Unter den zusätzlichen Zahlungen möchte ich über die schwierige Einführung von Apple Pay sprechen.

Zielgruppe

Bereich nicht abgedeckt

Inhaltsverzeichnis

Kommunikationsmethode, die zur Zahlung führt

Das erste, mit dem ich zu kämpfen hatte, war die Kommunikationsmethode, die zur Zahlung führte. Wie die Kreditgesellschaft dachte ich, dass dies durch die Kommunikation mit einer Firma vervollständigt werden würde. Bei Zahlungsmethoden wie Apple Pay ist es jedoch erforderlich, die Kommunikation zwischen dem Apple Pay-Unternehmen und der Zahlungsagentur herzustellen.

applepay-certificate.png

SandBox-Einstellungen

Als nächstes folgen die SandBox-Einstellungen. Apple Pay wird verwendet, indem eine Kreditkarte mit dem iPhone verbunden wird. Es ist jedoch gefährlich, zum Zeitpunkt der Entwicklung eine eigene Kreditkarte zu binden.

Aus diesem Grund verfügt Apple über eine Kreditkarte zur Überprüfung. Bitte beziehen Sie sich bei der Entwicklung auf hier.

Punkte, über die man sich Sorgen machen muss

Registrieren Sie sich bei Apple Developer

Für den Zugriff auf den Apple Pay-Server ist eine Authentifizierung zwischen Apple und dem Zahlungsagenten erforderlich. Die Registrierungsmethode kann je nach Zahlungsagentur geringfügig abweichen. Bitte beachten Sie.

Mit der Erneuerung der Apple-Website ist dies der nervigste Teil. Diese Registrierung kann in die folgenden fünf unterteilt werden.

  1. Fügen Sie MerchantId hinzu
  2. Registrieren Sie die CSR-Datei
  3. Registrierung von Händlerdomänen
  4. Registrieren des Apple Pay Merchant Identity Certificate
  5. Erstellung der P12-Datei

MerchantId hinzufügen

Erstellen Sie eine Händler-ID bei Apple Developer (https://developer.apple.com/account/). Wenn die Händler-ID von der Zahlungsagentur bereitgestellt wird, registrieren Sie diese bitte. Indem Sie dies registrieren, können Sie die Unternehmensinformationen ermitteln, die Apple abgerechnet hat.

  1. Übergang zu "Zertifikate, Kennungen und Profile / Kennungen / Händler-IDs" in Apple Developer
  2. Drücken Sie "+" der Kennungen, wählen Sie "Händler-IDs" und registrieren Sie die Händler-ID in der Kennung.

Punkte, über die man sich Sorgen machen muss

Registrieren Sie die CSR-Datei

Registrieren Sie die CSR-Datei der Zahlungsagentur in Apple Developer, um die Zahlungsagentur mit Apple zu verknüpfen.

  1. Registrieren Sie die CSR-Datei aus der MerchantId, die von Apple Developer erstellt wurde, da sie von der Zahlungsagentur im "Apple Pay Payment Processing Certificate" bereitgestellt wurde.
  2. Laden Sie "apple_pay.cer" von 1 herunter und lassen Sie es bei der Zahlungsagentur registrieren.

Punkte, über die man sich Sorgen machen muss

Registrierung von Händlerdomänen

Registrieren Sie die Site-Domain, in der Sie Apple Pay-Zahlungen bereitstellen möchten. Wenn Sie mehrere Domains haben, müssen Sie sich in jeder Domain registrieren.

  1. Registrieren Sie Ihre Domain unter "Merchant Domains" unter Apple Developer (https://developer.apple.com/account/).
  2. Nach der Registrierung können Sie "apple-Developer-Merchantid-Domain-Association.txt" herunterladen. Platzieren Sie es auf der Website der registrierten Domain. Dieses Mal wird es unter "hoge" platziert.
  3. Stellen Sie in den Apache-Einstellungen Folgendes ein und klicken Sie auf "/.well-known/apple-developer-merchantid-domain-association.txt", den Inhalt von "apple-developer-Merchantid-Domain-Association.txt". Wird angezeigt.
RewriteRule ^/.well-known/apple-developer-merchantid-domain-association.txt /hoge/apple-developer-merchantid-domain-association.txt [L]
  1. Klicken Sie auf Überprüfen, um die Authentifizierung abzuschließen. Wenn Sie sich einmal registrieren, ist diese 2 Jahre gültig.

Punkt

Registrieren eines Apple Pay Merchant Identity Certificate

Dies ist die letzte Registrierung auf der Apple-Website.

  1. Erstellen Sie mit dem zuvor erstellten "apple_pay.cer" eine "CertificateSigningRequest.certSigningRequest" -Datei mit Schlüsselkettenzugriff. (Referenz)
  2. Registrieren Sie die erstellte Datei "CertificateSigningRequest.certSigningRequest" im "Apple Pay Merchant Identity Certificate" von Apple Developer.
  3. Nach der Registrierung können Sie "Merchant_id.cer" herunterladen.

P12-Dateierstellung

Die P12-Datei wird während der Entwicklung für die Clientauthentifizierung verwendet. Erstellen Sie "ApplePayMerchantIdentity.p12" aus "Merchant_id.cer" mit Schlüsselkettenzugriff (Referenz).

Entwicklung von

Die Entwicklung wurde unter Bezugnahme auf GitHub von hier durchgeführt. Sie können ein Token mit ApplePay.js von Apple erhalten.

In der Entwicklung war ich besorgt über die Clientauthentifizierung mit Java. "Apple_pay_conf.php, apple_pay_comm.php", beschrieben auf der GitHub-Site, ist in PHP beschrieben, und ich konnte nicht viele Referenzseiten für die Einführung von Apple Pay in Java finden.

Das in PHP verwendete PEM kann nicht für die Clientauthentifizierung in Java verwendet werden. Verwenden Sie also die zuvor erstellte p12-Datei.

Wenn Sie Java erstellen, indem Sie auf die Website hier verweisen, wird die Authentifizierung bestanden und Sie können das Token von Apple Pay verwenden.

Sie können Apple Pay-Zahlungen über die API der Zahlungsagentur für dieses Token ausführen.

Andere Punkte, über die ich mir Sorgen machte

JDK-Version

Ich kann die Antwortinformationen zum Zeitpunkt der Java-Clientauthentifizierung abrufen. Aus irgendeinem Grund ist das Phänomen aufgetreten, dass nur eine bestimmte Umgebung nicht angezeigt wird.

Als ich den Unterschied überprüfte, lag es am Unterschied im JDK. Wenn es nicht funktioniert, versuchen Sie, die JDK-Version zu erhöhen.

Websites, auf denen Apple Pay eingeführt wurde

Dieses Mal haben wir Apple Pay auf der SP-Seite von LCC und Hotels vorgestellt. Ich hoffe, Sie können sich darauf beziehen. https://travel.navitime.co.jp/ja/booking/?reserveType=lcc&cid=qiita.article https://travel.navitime.co.jp/ja/booking/hotel?cid=qiita.article

Zusammenfassung

Vielen Dank, dass Sie den langen Text bis zum Ende gelesen haben. Die Einführung von Apple Pay nahm viel Zeit in Anspruch, um sich zu registrieren und zu authentifizieren. Ich hoffe, dass viele Menschen in diesem Artikel die Zahlung reibungslos einführen können.

Recommended Posts

Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte
Die Geschichte, einen Reverse-Proxy mit ProxyServlet zu erstellen
Eine Geschichte voller Grundlagen von Spring Boot (gelöst)
Die Geschichte des Refactorings mit einem selbstgemachten Helfer zum ersten Mal in einer Rails-App
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Die Geschichte eines Game Launcher mit automatischer Ladefunktion [Java]
Die Geschichte, ein Projekt zu bauen, das Maven mit Ant gebaut hat
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
Die Geschichte der Optimierung der Android-App mit libGDX
Eine Geschichte über das Erstellen eines Builders, der den Builder erbt
[Jackson] Eine Geschichte über das Konvertieren des Rückgabewerts des Big Decimal-Typs mit einem benutzerdefinierten Serializer.
Schreiben Sie einen Test, indem Sie die Geschichte von Mr. Nabeats in der Welt mit Rubin umsetzen
[Spring Boot] Die Geschichte, dass die Bean der Klasse mit der Annotation ConfigurationProperties nicht gefunden wurde
Stellen Sie die Sensorinformationen von Raspberry Pi grafisch dar und bereiten Sie eine Umgebung vor, die mit einem Webbrowser überprüft werden kann
Etwa der Ablauf der Entwicklung von Webanwendungen mit Rails.
Die Geschichte von dto, dao-like mit Java, SQLite
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
Die Geschichte des Erstellens einer Java-Version des Minecraft-Servers mit GCP (und dem Festlegen einer weißen Liste)
Eine Geschichte, die eine Pause einlegte, wenn sie Linked List mit einem leichten Gefühl benutzte
Die erste WEB-Anwendung mit Spring Boot-Making a Pomodoro Timer-
Überprüfen Sie die Funktion von zwei Rollen mit einer Chat-Anwendung
Eine Geschichte, die von String () von Interface abhängig ist und von JdkDynamicAopProxy vertreten wird
Erläutern Sie die Vorzüge des staatlichen Musters anhand des Bewertungsurteils des Films
Ein Programm, das die Anzahl der Wörter in einer Liste zählt
Einführung der Bibliothek ff4j, die Feature Toggle mit Spring Boot realisiert
Finden Sie mit Kotlin die Anzahl der Tage in einem Monat
[Automatischer Handel mit Bitcoin] Eine Geschichte über den Betrieb mit Docker unter AWS mit ON / OFF- und Line-Benachrichtigung mit 1 TAP von Apple Watch für unterwegs
Eine Geschichte, die bei NotSerializableException steckt
Eine Geschichte, die mich bedauerte, als während der Entwicklung der Spring Boot-App eine "NotReadablePropertyException" auftrat.
Die Geschichte, dass ein Modell keine "korrekte Darstellung der realen Welt" ist / die Notwendigkeit eines begrenzten Kontexts
Stellen Sie die Sensorinformationen von Raspberry Pi in Java grafisch dar und überprüfen Sie sie mit einem Webbrowser
Erstellen Sie einen einfachen Webserver mit der Java-Standardbibliothek com.sun.net.httpserver
Versuchen Sie, die Idee eines zweidimensionalen Arrays mit einem eindimensionalen Array nachzuahmen
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
Die Geschichte, dass die Standardausgabe auch das Verhalten des Programms tödlich verändert
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
Die Geschichte, dass Tomcat in Eclipse unter einem Timeout-Fehler litt
Die Geschichte eines Othello-Spiels vom Kommunikationstyp mit Scala.
[Illustration] Finden der Summe von Münzen mit einer rekursiven Funktion [Ruby]
Die Geschichte, mit der ich zu kämpfen hatte, weil ich "Rails db: migrate" nicht machen konnte.
Lassen Sie uns ein custom_cop erstellen, das auf das Schütteln des Namens hinweist
Drei Gründe für Frustration vor der Veröffentlichung von Web Services
Die Geschichte, dass die Verarbeitungsleistung von ARM von Open JDK niedrig war
Eine Geschichte, die sich mit dem Problem befasst, dass REMOTE_ADDR nicht in einem mit Docker Swarm + Traefik (1.7) erstellten Cluster erworben werden kann.
Exportieren (Ausgeben) einer großen Menge von CSVs, z. B. Protokollinformationen in der WEB-Anwendung, mit der Rails-Anwendung
Wie man IGV mit Socket-Kommunikation bedient und wie man einen Ruby Gem mit dieser Methode herstellt
Über die Angelegenheit, die tendenziell mit ARG von Dockerfile verwechselt wird, einem mehrstufigen Build
Die Geschichte der Einführung von Gradle als Nachrüstung eines bestehenden Systems, das keine Pakete verwaltet
[Java Edition] Geschichte der Serialisierung
Dies und das von JDK
Erstellen Sie eine Webanwendung mit Javalin
Die Geschichte von @ViewScoped, die Speicher verschlingt