我绞尽脑汁 - 这个请求在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。以下是邮递员的同一请求,成功与一个机构。
非常感谢任何想法,谢谢!
答案 0 :(得分:2)
您应该使用$res->getBody()->getContents()
。
如果出现任何错误,json_decode()
会返回null
。您必须使用json_last_error()
单独检查它们(不幸的是)。