【问题标题】:Paypal Express PHP - Posting JS variables in onAuthorize MethodPaypal Express PHP - 在 onAuthorize 方法中发布 JS 变量
【发布时间】:2019-01-07 17:58:19
【问题描述】:

我正在使用 PHP 进行 Paypal Express Checkout,一旦执行 onAuthorize 方法,我就会尝试在重定向 url 上发布其他变量。

我尝试在调用 onAuthorize 方法后运行 Ajax 函数,但到目前为止还没有成功。我的变量无法访问 redirect_urls 中设置的 URL。

onAuthorize 方法:

onAuthorize: function (data, actions) {
  return actions.payment.execute()
    .then(function () {
      postAjax();
      actions.redirect();
    });
}

名为 postAjax 的 Ajax 函数

function postAjax() {
  jQuery.ajax({
    type: "POST",
    ataType: 'text',
    url: "<?php if ($langue == $fr) {echo "http://localhost/index.php/fr/confirmation";} else {echo "http://localhost/index.php/en/confirmation";}?>",
    data: {idFif : "testValue123"},
    success: function(){
      alert(data);
    }
  });
}

网址重定向

redirect_urls: {
  return_url: '
    <?php if ($langue == $fr) {
       echo "http://localhost/index.php/fr/confirmation"; } 
       else {echo "http://localhost/index.php/en/confirmation";}?>'
    }

我很想发布这些值,而不必创建外部 ajax 函数(在这种精确的情况下是 postAjax()),但我似乎不知道怎么做。有人可以给我一些指示吗?非常感谢!

【问题讨论】:

    标签: paypal-sandbox paypal


    【解决方案1】:

    对于您的情况,我强烈建议您使用 Paypal PHP SDK,因为快速结账,是的,这很容易,但我有过用户在 paypal 选项卡上完成支付后关闭浏览器的经验,所以使用 ajax我在onAuthorize()then() 回调中执行付款时启动,有时没有完成执行,相反,在运行服务器端结帐时,一旦您的代码全部执行完毕,paypal 窗口就会关闭。

    因此,在您的情况下,一旦付款执行,您就没有其他方法可以将内容发布到服务器,ajax 是您唯一的选择。如果您决定使用 PHP SDK 实现支付,您可以这样做:

    onAuthorize: function(data, actions) {
                    // Make a request to your server
                    return actions.request.post('urlServerPost', {
                        paymentID: data.paymentID,
                        payerID:   data.payerID,
                        variable1: 'something',
                        variable2: 'something2'
                    })
                    .then(function(res) {
                        //Your payment has already been approved and the process on the server has been finished also
                    });
                }
    

    【讨论】:

    • 谢谢!我已经切换到 SDK。
    猜你喜欢
    • 2019-02-21
    • 2017-11-06
    • 2014-01-20
    • 1970-01-01
    • 2018-04-02
    • 2018-05-21
    • 1970-01-01
    • 2011-07-21
    • 2023-04-10
    相关资源
    最近更新 更多