首页 > 解决方案 > 在 Paypal Javascript 上创建订单时出现问题

问题描述

当脚本调用在页面 HTML/javascript 中创建订单时出现问题。

在控制台中,我有一个错误“期望将字符串订单 ID 传递给 createOrder”。

我给我的代码 HTML/javascript

<html >
<body>
<div id="bouton-paypal"></div>
<script src="https://www.paypal.com/sdk/js?client-id=monid"></script>
<script>
paypal.Buttons({
  // Set up the transaction
  createOrder: function() {
      var SETEC_URL = 'http://localhost/paypalphp/paypalcreatepayment.php';

      return fetch(SETEC_URL, {
        method: 'post',
        headers: {
          'content-type': 'application/json'
        }
      }).then(function(res) {
        return res.json();
      }).then(function(data) {
        return data.token;
      });
    }
}).render('#bouton-paypal');

标签: javascriptjsonpaypal

解决方案


感谢您的回复。我喜欢这个问题的解决方案

  <script>
    paypal.Buttons({

      style: {
   layout:  'vertical',
   color:   'blue',
   shape:   'rect',
   label:   'paypal'
 },
      // Set up the transaction
      createOrder: function() {
          var SETEC_URL = 'http://localhost/paypalphp/paypalcreatepayment.php';

          return fetch(SETEC_URL, {
            method: 'post',
            headers: {
              'content-type': 'application/json'
            }
          }).then(function(res) {
            return res.json();
          }).then(function(data) {
            let token;
            token = data.paypal_response.links[1].href.match(/EC-\w+/)[0];
            console.log(token);
            return token;
          });
        },

  // Finalize the transaction
  onApprove: function(data) {     // On indique le chemin vers notre script PHP qui se chargera d'exécuter le paiement (appelé après approbation de l'utilisateur côté client).
          var EXECUTE_URL = 'http://localhost/paypalphp/paypalexecutepayment2.php?payerID='+data.payerID+'&paymentID='+data.paymentID;
          /*var data = {
            paymentID: data.paymentID,
            payerID: data.payerID
          };*/
          console.log(data);
          return fetch(EXECUTE_URL, {
    method: 'post',
    headers: {
      'content-type': 'application/json'
    },
    body: JSON.stringify({
      token:   data.orderID,
      payerID: data.payerID,
      paymentID: data.paymentID
    })
  });
},
onCancel: function(data, actions) {
  alert("Paiement annulé : vous avez fermé la fenêtre de paiement.");
},
onError: function(err) {
  alert("Paiement annulé : une erreur est survenue. Merci de bien vouloir réessayer ultérieurement.");
}
    }).render('#bouton-paypal');
  </script>

推荐阅读