Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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
PayPal PHP SDK REST API响应不是JSON_Php_Rest_Paypal - Fatal编程技术网

PayPal PHP SDK REST API响应不是JSON

PayPal PHP SDK REST API响应不是JSON,php,rest,paypal,Php,Rest,Paypal,当我进行API调用时,我得到一个包含嵌套对象嵌套数组的对象。在SDK中,我将头设置为accept:application/json。我想知道为什么要取回对象和数组 以下是答复的一部分: PayPal\Api\CreditCard Object ( [_propMap:PayPal\Common\PPModel:private] => Array ( [type] => amex [number] => xx

当我进行API调用时,我得到一个包含嵌套对象嵌套数组的对象。在SDK中,我将头设置为accept:application/json。我想知道为什么要取回对象和数组

以下是答复的一部分:

PayPal\Api\CreditCard Object
(
    [_propMap:PayPal\Common\PPModel:private] => Array
        (
            [type] => amex
            [number] => xxxxxxxxxxx0005
            [expire_month] => 5
            [expire_year] => 2015
            [cvv2] => 1234
            [first_name] => 
            [last_name] => 
            [payer_id] => 3zIVtTFQ7UdKjP5mssjtzoUo6NvrsExl466oPC4Mm8nwOjI6BS
            [id] => CARD-35X96613EN689504VKKCA4RA
            [state] => ok
            [valid_until] => 2015-06-01T00:00:00Z
            [create_time] => 2013-11-13T23:41:56Z
            [update_time] => 2013-11-13T23:41:56Z
            [links] => Array
                (
                    [0] => PayPal\Api\Links Object
                        (
                            [_propMap:PayPal\Common\PPModel:private] => Array
                                (
                                    [href] => https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-35X96613EN689504VKKCA4RA
                                    [rel] => self
                                    [method] => GET
                                )

   )

[1] => PayPal\Api\Links Object
。。。等等 创建此文件的代码

public static function get($creditCardId, $apiContext = null) { 
    if (($creditCardId == null) || (strlen($creditCardId) <= 0)) { 
        throw new \InvalidArgumentException("creditCardId cannot be null or empty"); 
    }
    $payLoad = ""; 
    if ($apiContext == null) { 
         $apiContext = new ApiContext(self::$credential); 
    } 
    $call = new PPRestCall($apiContext); 
    print_r($call); 
    die;
    $json = $call->execute(array('PayPal\Rest\RestHandler'), "/v1/vault/credit-card/$creditCardId", "GET", $payLoad); 
    $ret = new CreditCard(); 
    $ret->fromJson($json); 
    return $ret;
}
公共静态函数get($creditcardd,$apiContext=null){
如果($creditCardId==null)| |(strlen($creditCardId)执行(数组('PayPal\Rest\RestHandler'),“/v1/vault/credit-card/$creditCardId”,“GET”,$payLoad);
$ret=新信用卡();
$ret->fromJson($json);
返回$ret;
}

很可能SDK在通信层接受JSON,然后运行返回一个可以使用的对象。我自己的API系统将响应转换回PHP数组。

好的,谢谢Machavity的帮助。问题是在我上面发布的函数中,它接受JSON响应并将其转换对于某个wierd对象:

$ret->fromJson($json);

我删除了这一行,现在得到了JSON。我仍然想知道为什么我最初发布的对象会有帮助,它可以在哪里使用。我还想知道为什么SDK文档没有明确声明SDK不会返回JSON作为最终格式。我觉得如果PayPal通知开发人员响应nse被转换为一个对象,因此我们不必搜索数千行代码来找出它。

json\u解码($call->execute(数组('PayPal\Rest\RestHandler'),“/v1/vault/credit-card/$creditcardd”,“GET”,“$payLoad))

Hmm,有趣的是,当我搜索文档时,它只列出JSON作为响应。我觉得我遗漏了一些东西。原始响应(PayPal向您发送的内容)很可能是JSON格式。您必须构建自己的请求或修改SDK才能看到它。我仍然不知所措。我已将配置设置为返回JSON。我发布的是响应的print_r(),因此SDK尚未处理响应。我猜,如果这是“正常”的话,如何访问此对象中的所有数据。对象中的数组键有斜杠和分号,这不是我以前处理过的。在我使用过的其他API中,它只是一个简单的json响应?SDK已经为您解析了响应,您显然通过对象引用了它。您可以发布代码吗这样我就可以看到您的调用了?进行调用的函数:公共静态函数get($creditcardd,$apiContext=null){if($creditcardd==null)|(strlen($creditcardd)execute(数组('PayPal\Rest\RestHandler'),“/v1/vault/credit-card/$creditcardd”,“get”,$payLoad);$ret=new CreditCard();$ret->-fromJson($json);return$ret;我一直在想如何简单地通过PHP PayPal SDK获取原始JSON,然后“发送”和“接收”…用于日志记录/跟踪目的!我不想要SDK的整个对象包装器和处理程序,我只想要PayPal上下的负载用于日志记录(因为SDK记录器已损坏/根本不工作)。