将自定义php网站与paypal集成?

时间:2013-02-27 09:09:47

标签: php paypal

我设法整合了一个自定义网站,与paypal ...在这个网站上创建一个帐户时,你需要支付一笔费用,通过paypall ...所以我在注册后重新定向用户,付费,在他支付后的地方,他被重定向到我网站上的成功页面,在URL中有一个令牌密钥作为参数(我从商家帐户输入了该成功页面)。唯一的问题是,如何使用此令牌密钥从paypal响应中获取刚刚注册并支付的客户的电子邮件。

如果我创建如下自定义表单:

     <form id="paypalForm" method="POST" action="https://www.paypal.com/cgi-bin/webscr">
        <input type="hidden" name="cmd" value="_notify-synch">
        <input type="hidden" name="tx" value="<?php echo $tokenKey; ?>">
        <input type="hidden" name="at" value="<?php echo $merchantPayPalltoken; ?>">
        <input type="submit">
     </form>

如果我点击提交,我会被重定向到一个付费屏幕,在那里我可以获得我想要的信息,列出。

但我试图通过jQuery.ajax进行这个帖子调用,如下所示:

    var postVars = jQuery('#paypalForm').serialize();
    var url = 'https://www.paypal.com/cgi-bin/webscr';
    jQuery.ajax({
        type: "POST",
        url: url,
        data: postVars,
        success: function(data){
              alert("success email = "+data.payer_email);

          },

      error:function(xhr, ajaxOptions, thrownError){

               alert('status = '+xhr.status+' thrownError = '+thrownError+ ' response = '+xhr.responseText);


          } 
    });

但它总是进入响应的错误部分,而不是成功。

我需要来自pay-pal的电子邮件信息,以便在付款后在我的网站上激活该用户帐户。

或者我应该通过在将用户电子邮件重定向到paypall进行付款之前创建一个包含用户电子邮件的会话变量,以及当用户被重定向回成功页面时,从会话中获取电子邮件。这是一种安全的方法吗?

非常感谢

1 个答案:

答案 0 :(得分:4)

您可以通过两种不同的方式将这些信息反馈回您的网站。您可以使用PDT或IPN。两者都会将信息返回给您的网站。无论买家是否退货,IPN都会将信息发回您的网站。这是一个更好的方法来使用买家不返回的包,例如他们的浏览器崩溃或他们关闭窗口。这样您的系统仍将更新。另一种方法PDT,看起来与您尝试使用的方法有关,取决于买家返回您的网站。当他们被重定向回您的网站时,他们会收到一些信息。您回复以使用PayPal验证信息,然后PayPal回复所有信息。

您可以在https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNPDTAnAlternativetoIPN上找到有关PDT的更多信息。该页面上有文档和示例。您还可以在该页面上找到有关IPN的更多信息的链接,或者您可以转到https://www.x.com/developers/paypal/documentation-tools/ipn/integration-guide/IPNOperations这取决于您使用的方法。我通常将两者结合使用。我只是检查IPN和PDT脚本,以确保在将其写入数据库之前我还没有收到其他脚本的帖子。如果我有,那么我忽略了第二篇文章。我更多地使用PDT返回页面来创建动态收据,并更多地依靠IPN在我的系统中进行更新。

IPN的优点还在于,如果由于某种原因在您最初收到错误或网络问题时,您可以将帖子重新发送到您的系统。使用PDT,您无法重新发送此信息。因此,您必须手动更新数据库。

希望这有帮助!! :)

相关问题