읽을 수있는 양식에 대한 응답을 변환하십시오
문제
CURL을 사용하여 페이팔에 요청을 게시하고 있습니다.
다음 코드를 확인하십시오
$url = 'https://api-3t.sandbox.paypal.com/nvp';
$request = array();
$request['USER'] = 'username' ;
--- sending other request fields like above ---
$rd = '';
foreach ($request as $_key => $_val)
{
$rd .= $_key . '=' . urlencode(mb_convert_encoding($_val, 'ISO-8859-1', 'UTF-8')) . '&';
}
$output = array();
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_HEADER, 0);
curl_setopt($curlSession, CURLOPT_POST, 1);
curl_setopt($curlSession, CURLOPT_POSTFIELDS, $rd);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlSession, CURLOPT_TIMEOUT, 90);
curl_setopt($curlSession, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlSession, CURLOPT_SSL_VERIFYHOST, 1);
$rawresponse = curl_exec($curlSession);
.
이제 컬 실행이 수행되면 Reposne 아래를 받고 있습니다.
Timestamp= 2015 % 2D07 % 2D23T10 % 3A39 % 3A36Z 및 CorrelationID= 61F4332AAF13E & ACK= 성공 및 버전= 90 & ACK= 17485293
내 문제는이를 읽을 수있는 배열 형식으로 변환하는 방법입니다. 제발 도와주세요
해결책
변수 $response
가 PayPal에서 얻은 것을 포함하는 것으로 가정 해 봅시다.
$decoded = urldecode($response);
.
가 당신을 얻을 것입니다
TIMESTAMP=2015-07-23T10:39:36Z&CORRELATIONID=61f4332aaf13e&ACK=Success&VERSION=90&BUILD=17485293
.
추가 호출
$split = explode('&', $decoded);
.
가 당신을 얻을 것입니다
Array
(
[0] => TIMESTAMP=2015-07-23T10:39:36Z
[1] => CORRELATIONID=61f4332aaf13e
[2] => ACK=Success
[3] => VERSION=90
[4] => BUILD=17485293
)
.
=
의 각 요소를 더 분할하고 키 값 쌍을 가져올 수도 있습니다.
[편집]
또는 더 나은 아직
$arr = array();
parse_str(urldecode($response), $arr);
echo "<pre>"; print_r($arr);
.
가 당신을 얻을 것입니다
Array
(
[TIMESTAMP] => 2015-07-23T10:39:36Z
[CORRELATIONID] => 61f4332aaf13e
[ACK] => Success
[VERSION] => 90
[BUILD] => 17485293
)
. 제휴하지 않습니다 magento.stackexchange