在PHP中访问paypal响应对象的元素

时间:2014-11-14 03:13:43

标签: php object paypal response

我得到了成功对象的paypal响应,如下所示。

$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(),所以没有任何反应。请帮忙。

1 个答案:

答案 0 :(得分:0)

我找到了获取事务引用和消息的解决方案。我使用下面的代码。 的print_r($响应 - &GT;参考()); 的print_r($响应 - &gt;消息()); 但我无法访问具有付款变量的阵列。

通过在类构造函数中获取所需的值并像上面的方法一样从对象中检索它们,找到了另一种方法。 为了获得AUTHCODE值,我编写了代码print_r($ response-&gt; _authcode); 要在构造函数中包含此值,请将authcode作为 $ this-&gt; _authcode = $ this-&gt; _response ['AUTHCODE'];

问题解决了。