Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php GetExpressCheckoutDetails响应中缺少PayPal TransactionID_Php_Paypal_Express Checkout - Fatal编程技术网

Php GetExpressCheckoutDetails响应中缺少PayPal TransactionID

Php GetExpressCheckoutDetails响应中缺少PayPal TransactionID,php,paypal,express-checkout,Php,Paypal,Express Checkout,我正在使用PayPal的GetExpressCheckoutDetails调用和有效令牌来尝试提取提交的事务的详细信息。然而,返回的值只是PayPal所说的根据下面URL中列出的文档应该返回的值的一小部分 有人知道贝宝为什么不返回完整的数据集吗?在本例中,我不太关心大部分事务,但我们需要交易ID,在文档中作为PAYMENTREQUEST\u n\u TRANSACTIONID列出,以便我们可以将数据库中的交易与PayPal的交易历史进行匹配 paypalfunctions.php(相关函数)

我正在使用PayPal的GetExpressCheckoutDetails调用和有效令牌来尝试提取提交的事务的详细信息。然而,返回的值只是PayPal所说的根据下面URL中列出的文档应该返回的值的一小部分

有人知道贝宝为什么不返回完整的数据集吗?在本例中,我不太关心大部分事务,但我们需要交易ID,在文档中作为PAYMENTREQUEST\u n\u TRANSACTIONID列出,以便我们可以将数据库中的交易与PayPal的交易历史进行匹配

paypalfunctions.php(相关函数)

expresscheckoutreceive.php

session_start();
ini_set( "session.bug_compat_warn", "off" );
require_once("paypalfunctions.php");

if ( isset( $_GET['token'] ) ) {
    $token = $_GET['token'];
    }

if ( $token != "" ) {
    $resArray = GetShippingDetails( $token );
    echo "<pre>";
    var_dump( $resArray );
    echo "</pre>";
    } else {
    echo "Error: Transaction Incomplete";
    }

谢谢

如果您可以阅读
getShippingDetails()
功能中的注释,则说明
在这种状态下,授权不是已完成的交易-买方仍需要额外的步骤来完成交易


因此,您还需要在此之后调用
ConfirmPayment()
方法,该方法将在函数中调用
DoExpressCheckoutPayment
您是否通过先完成DoExpressCheckout操作来完成快速签出事务?PayPal中的每一笔交易都需要在交易ID发出之前先完成。在这种情况下,需要先运行DoExpressCheckout,然后才能在GetExpressCheckout details中获取事务ID。

就是这样!非常感谢!我不知道我怎么会错过这个,但我在这之后添加了一个对DoExpressCheckoutPayment的调用(使用ConfirmPayment函数),现在一切都就绪了-TransactionID被返回,虽然仍然不是PayPal所说的格式,但该文档页必须是用于其他内容的。您需要查看
DoExpressCheckoutPayment
的文档。很高兴帮助你。
session_start();
ini_set( "session.bug_compat_warn", "off" );
require_once("paypalfunctions.php");

if ( isset( $_GET['token'] ) ) {
    $token = $_GET['token'];
    }

if ( $token != "" ) {
    $resArray = GetShippingDetails( $token );
    echo "<pre>";
    var_dump( $resArray );
    echo "</pre>";
    } else {
    echo "Error: Transaction Incomplete";
    }
    array(21) {
["TOKEN"]=>
  string(20) "EC-XXXXXXXXXXXXXXXXX"
  ["TIMESTAMP"]=>
  string(20) "2014-12-04T22:10:46Z"
  ["CORRELATIONID"]=>
  string(13) "XXXXXXXXXXXXXXX"
  ["ACK"]=>
  string(7) "Success"
  ["VERSION"]=>
  string(3) "2.3"
  ["BUILD"]=>
  string(8) "14086142"
  ["EMAIL"]=>
  string(31) "test@test.com"
  ["PAYERID"]=>
  string(13) "XXXXXXXXXXXXX"
  ["PAYERSTATUS"]=>
  string(8) "verified"
  ["BUSINESS"]=>
  string(25) "TestCo"
  ["FIRSTNAME"]=>
  string(9) "Test"
  ["LASTNAME"]=>
  string(6) "Test"
  ["COUNTRYCODE"]=>
  string(2) "US"
  ["SHIPTONAME"]=>
  string(25) "Test Test"
  ["SHIPTOSTREET"]=>
  string(20) "123 Test St."
  ["SHIPTOCITY"]=>
  string(6) "Test City"
  ["SHIPTOSTATE"]=>
  string(2) "CA"
  ["SHIPTOZIP"]=>
  string(5) "33333"
  ["SHIPTOCOUNTRYCODE"]=>
  string(2) "US"
  ["SHIPTOCOUNTRYNAME"]=>
  string(13) "United States"
  ["ADDRESSSTATUS"]=>
  string(9) "Confirmed"
}
        //'--------------------------------------------------------------
        //' At this point, the buyer has completed authorizing the payment
        //' at PayPal.  The function will call PayPal to obtain the details
        //' of the authorization, incuding any shipping information of the
        //' buyer.  Remember, the authorization is not a completed transaction
        //' at this state - the buyer still needs an additional step to finalize
        //' the transaction
        //'--------------------------------------------------------------