2014-11-14 2 views
-1

Я получаю paypal ответ для объекта успеха, как показано ниже.Элементы доступа объекта ответа paypal в php

$data = array('PayPalResult'=>$response); 
print_r($data); 

Когда я проверяю с print_r я получаю следующие данные там. Но, имея проблемы с доступом к деталям из массива объектов, пожалуйста, помогите. Я попробовал, как показано ниже, но, получив сообщение об ошибке, не смог преобразовать в строку, я много искал и пытался, но ничего не получилось.

Array ([PayPalResult] => 
     Merchant_payflow_pro_response Object ([_response:protected] => 
     Array ([RESULT] => 0 
       [PNREF] => A11R7C40C51D 
       [RESPMSG] => Approved 
       [AUTHCODE] => 000674 
       [CVV2MATCH] => Y) 
       [_status:protected] => complete [_message:protected] => Approved 
       [_reference:protected] => A11R7C40C51D [_data:protected] => 
       [_redirect_url:protected] => 
       [_redirect_method:protected] => GET 
       [_redirect_message:protected] => 
       [_redirect_data:protected] 
      =>)) 

foreach (array('PayPalResult'=>$response) as $k => $v) 
    { // if $v is an Array, appllies another foreach() loop to it, to get its elements 
       if(is_array($v)) { 
       foreach ($v as $key => $val) { 
        echo '<br />'. $k. ' - '. $key. ' : '. $val; 
        if ($key == 'RESPMSG') 
        $data['msg'] = $val; 
        else if ($key == 'PNREF') 
        $data['ref'] = $val; 
        else if($key == 'RESULT') 
        $data['result'] = $val; 
        else if($key == 'AUTHCODE') 
        $data['authcode'] = $val; 
        else if($key == 'CVV2MATCH') 
        $data['cvv2match'] = $val; 
       } 
    }//else echo '<br />'. $k. ' - '. $v;} 

Это не происходит внутри is_array(), поэтому ничего не происходит. Пожалуйста помоги.

ответ

0

Я нашел решение, чтобы получить ссылку на транзакцию и сообщение. Я использовал приведенный ниже код. print_r ($ response-> reference()); print_r ($ response-> message()); Но я не могу получить доступ к массиву с переменными платежа.

Обнаружил альтернативный путь, получив необходимые значения внутри конструктора классов и извлекая их из объекта, подобного методу выше. Для того чтобы получить значение AUTHCODE, я написал код print_r ($ response -> _ authcode); Чтобы это значение переноса внутри конструктора получило authcode как $ this -> _ authcode = $ this -> _ response ['AUTHCODE'];

Проблема решена.

Смежные вопросы