سؤال

أقوم بنشر طلب إلى Paypal باستخدام حليقة.

يرجى التحقق من الكود التالي

$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);

الآن عندما يتم تنفيذ تنفيذ الضفيرة، فإنني أحصل على أقل من مستوى الرضا.

الطابع الزمني=2015%2d07%2d23T10%3a39%3a36Z&CORRELATIONID=61f4332aaf13e&ACK=Success&VERSION=90&BUILD=17485293

مشكلتي هي كيفية تحويل هذا في شكل صفيف قابل للقراءة؟الرجاء مساعدتي

هل كانت مفيدة؟

المحلول

دعنا نقول المتغير $response يحتوي على ما تحصل عليه من باي بال.

$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
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top