2

我设法将自定义网站与贝宝集成...在此网站上创建帐户时,您需要通过贝宝支付费用...所以我在注册后将用户重定向到贝宝,在他付款后,他是重定向到我网站上的成功页面,并在 url 中使用令牌密钥作为参数(我从商家帐户输入了该成功页面)。唯一的问题是,我如何使用此令牌密钥从贝宝响应中获取刚刚注册并付款的客户的电子邮件。

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

     <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 的电子邮件信息才能在我的网站上激活该用户帐户。

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

非常感谢

4

1 回答 1

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,您无法重新发送此信息。所以你必须手动更新你的数据库。

希望这可以帮助!!:)

于 2013-02-27T14:33:54.873 回答