2017-10-11 1 views
1

Ich versuche, die Zahlungsanforderung api zu integrieren, aber ich vermisse etwas hier .. Wie validiere ich Zahlungen, die mit der API gemacht wurden? Wenn der Benutzer zahlt, wird mein Rückruf ausgeführt, aber woher weiß ich, dass die Zahlung abgeschlossen ist? Hier ist mein Code.Validieren Sie Google Payment Request API

paymentRequest.show() 
    .then((paymentResponse) => { 
     fetch('http://validate-payment/api') 
     .then((response) => { 
      return response.json(); 
     }) 
     .then((json) => { 
      return paymentResponse.complete('fail'); // Hardcode fail 
     }) 
     .catch((error) => { 
      reject(); 
     }) 
    }) 
    .catch((error) =>{ 
     console.log(error.message) 
    }); 
+0

prüfen 'response.ok' und wenn das stimmt, dann rufen Sie' response.json() '; sonst calle 'complete ('fail')'. – sideshowbarker

+0

Bitte beachten Sie, dass diese API die Zahlungsanforderungs-API ist und nicht mit Google in Zusammenhang steht. Bitte nennen Sie diese "Google Payment Request API" nicht. https://medium.com/dev-channel/addressing-common-misconceptions-about-the-payment-request-api-4d0db51dae75 – agektmr

Antwort

2

Wenn Sie paymentResponse Objekt erhalten, das bedeutet nicht, die Zahlung erfolgt ist. Sie müssen die Informationen wie derzeit an ein Zahlungsgateway senden, um die Zahlung zu verarbeiten.

Beziehen Sie das Zahlungsdetail mit paymentResponse.details und senden Sie es an ein Zahlungsgateway (in Ihrem Code könnte es "validate-payment/api" sein).

Die Antwort vom Zahlungsgateway gibt an, ob die Zahlung erfolgreich war oder nicht.

Achten Sie bei der Arbeit mit dieser API auf die Einhaltung der PCI-Richtlinien (insbesondere, wenn Sie mit rohen Kreditkarteninformationen arbeiten). Stripe zum Beispiel does this on behalf of you, aber nicht viele Zahlungs-Gateways tun das ähnlich.

paymentRequest.show() 
    .then((paymentResponse) => { 
     var details = paymentResponse.details; 
     fetch('https://validate-payment/api', { 
      method: 'POST', 
      body: JSON.stringify(details) 
     })...