[PayPal Express Checkout] [PHP]如何获取交易代码?

时间:2019-04-13 16:07:37

标签: express paypal transactions checkout

我一直在尝试在我的网站上实施PayPal快速结帐。 到目前为止,付款已经可以处理,完成后,用户将被重定向到另一个脚本来完成付款。

但是,每次发出的付款都只是被“授权”了。我想立即收款。

我已经尝试过搜索如何收取款项,并且遇到了curl选项。 但是,要做到这一点,我需要用户在电子邮件中收到的交易代码,并可以在其帐户概览中查看。

Braintree的结果对象不包含此代码。我只能访问paymentCode,paymentID,payerID和唯一交易ID,而不能访问该交易代码。

这是我正在使用的CURL代码:

$postdata='{
    "amount":{
       "currency":"EUR",
       "total":"'.$_POST['amount'].'"
    },
    "is_final_capture":true
 }';
 $postdatafileh=tmpfile();
 fwrite($postdatafileh,$postdata);
 rewind($postdatafileh);
 $ch=curl_init();
 curl_setopt_array($ch,array(
 CURLOPT_URL=>'https://api.paypal.com/v1/payments/authorization/$auth_id/capture',
 CURLOPT_HTTPHEADER=>array(
 'Content-Type: application/json',
 'Authorization: Bearer $auth_token',
 'Content-Length: '.strlen($postdata)
 ),
 CURLOPT_INFILE=>$postdatafileh,
 CURLOPT_INFILESIZE=>strlen($postdata),
 CURLOPT_VERBOSE=>true,
 CURLOPT_SSL_VERIFYPEER=>false,
 CURLOPT_ENCODING=>'',
 CURLOPT_POST=>true
 ));

 $ret=curl_exec($ch);
 fclose($postdatafileh);
 print_r($ret);

这是发布在stackoverflow上的代码。

现在是问题所在:$ auth_id必须是该交易代码。

作为参考,这是生成按钮的代码:

$clientToken = $gateway->clientToken()->generate();
    echo '<div id="pp_button"></div>
    <!-- Load the required checkout.js script -->
    <script src="https://www.paypalobjects.com/api/checkout.js" data-version-4></script>

    <!-- Load the required Braintree components. -->
    <script src="https://js.braintreegateway.com/web/3.39.0/js/client.min.js"></script>
    <script src="https://js.braintreegateway.com/web/3.39.0/js/paypal-checkout.min.js"></script>

    <script>
    paypal.Button.render({
      braintree: braintree,
      client: {
          production: \''.$clientToken.'\',
          sandbox: \''.$clientToken.'\'
      },
      env: \'production\',
      commit : true,
      intent: "sale",

      payment: function (data, actions) {
        return actions.braintree.create({
          flow: \'checkout\', // Required
          //amount: '.DB_ProductGetPrice($_GET['v'],$_GET['t']).', // Required
          amount: 0.01,
          currency: \'EUR\', // Required
          enableShippingAddress: false,
          options : {
              submitForSettlement: true
          }
        });
      },

      onAuthorize: function (data,actions) {
        return actions.payment.get().then(function(paymentDetails){
                return actions.payment.execute().then(function(){
                    var formData = {
                        //amount : "'.DB_ProductGetPrice($_GET['v'],$_GET['t']).'",
                        amount : 0.01,
                        nonce : data.nonce
                    }
                    $.ajax ({
                        method : "POST",
                        data : formData,
                        url : "./src/auth/completeorder.php"
                    }).done(function(data){
                        $("#pp_button").html(data);
                    });
            })
        });
      },

      onError: function(data) {
          console.log(data);
      }
    }, \'#pp_button\');
    </script>';

也许我忘记了那里的东西

有人对如何获取所述交易代码有想法吗?还是只授权付款?我的PayPal帐户有问题?

致谢

0 个答案:

没有答案