Paypal Express PHP-在onAuthorize方法中发布JS变量

时间:2019-01-07 17:58:20

标签: paypal-sandbox paypal

我正在使用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();
    });
}

Ajax函数,名为postAjax

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);
    }
  });
}

URL重定向

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()),但是我似乎找不到答案。有人可以给我一些指示吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

对于您的情况,我强烈建议您使用Paypal PHP SDK,因为快速结帐是的,这很容易,但是我有一种经验,当用户在Paypal标签上完成付款后,用户会关闭浏览器,因此ajax我是在onAuthorize()的{​​{1}}回调中执行付款时启动的,有时没有完成执行,而是在运行服务器端结帐时,一旦执行了代码,贝宝窗口就会关闭全部。

因此,在您的情况下,没有其他方法可以在付款执行后将某些东西发布到服务器上,而ajax是您唯一的选择。如果您决定使用PHP SDK实施付款,则可以执行以下操作:

then()