PHP Guzzle POST请求返回空

时间:2017-09-14 14:52:31

标签: php post guzzle

我绞尽脑汁 - 这个请求在Postman中很好,但我无法使用Guzzle访问身体。

$client = new \GuzzleHttp\Client();

        $res = $client->request('POST',  'https://apitest.authorize.net/xml/v1/request.api', [
            'headers' => [
                'Content-Type' => 'application/json',
            ],
            'body' => json_encode([
                'createTransactionRequest' => [
                    'merchantAuthentication' => [
                        'name' => '88VuW****',
                        'transactionKey' => '2xyW8q65VZ*****'
                    ],
                    'transactionRequest' => [
                        'transactionType' => 'authCaptureTransaction',
                        'amount' => "5.00",
                        'payment' => [
                            'opaqueData' => [
                                'dataDescriptor' => 'COMMON.ACCEPT.INAPP.PAYMENT',
                                'dataValue' => $_POST['dataValue']
                            ]
                        ]
                    ]
                ]
            ])
        ]);

        dd(json_decode($res->getBody()));

以上返回null - 没有错误,只是null。以下是邮递员的同一请求,成功与一个机构。

enter image description here

非常感谢任何想法,谢谢!

1 个答案:

答案 0 :(得分:2)

您应该使用$res->getBody()->getContents()

如果出现任何错误,json_decode()会返回null。您必须使用json_last_error()单独检查它们(不幸的是)。