paypal IPN和paynow按钮

时间:2017-03-04 22:07:45

标签: paypal paypal-ipn paypal-sandbox

我有一个paypal按钮,文件名为paypaltest.php:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<!--<input type="hidden" name="custom" value="<?php //echo $id ?>">-->
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

我的web托管服务器目录中的同一位置也有一个paypal ipn php文件名listener.php。

我想知道如何将两者联系起来以了解交易是否已经过验证。我应该用listener.php文件替换表单上的沙箱网址。

1 个答案:

答案 0 :(得分:0)

我可以为您提供单页贝宝立即付款按钮 实际上,我使用了我的一个项目

<script src="https://www.paypal.com/sdk/js?client-id=XXXXXXXXXXXXXXXXX">
  </script> 

<div id="paypal-button-container"> </div>


 <script>
  paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: '1230'
          }
        }]
      });
    },
    onApprove: function(data, actions) {
      return actions.order.capture().then(function(details) {
        alert('Transaction completed');
        // Call your server to save the transaction
        return fetch('codes/paypalapi.php?invo=123', {
          method: 'post',
          headers: {
            'content-type': 'application/json'
          },
          body: JSON.stringify({
            orderID: data.orderID,
            amount: data.amount
          })         
        });
      });
    }
  }).render('#paypal-button-container');
</script>