Note that there are some explanatory texts on larger screens.

plurals
  1. POStore this as an object
    primarykey
    data
    text
    <p>SOLUTION: Each of the keys ending <code>:private</code> had a <code>__get()</code> and <code>toJSON()</code> method which is needed to get the data from them as _propMap is private.</p> <p>I'm using PayPal's PHP API to take payments from PayPal, and the data I get after a payment has been completed, comes back as this</p> <pre><code>Array ( [PayPal\Common\PPModel_propMap] =&gt; Array ( [id] =&gt; PAY-THEID [create_time] =&gt; 2013-12-03T15:47:15Z [update_time] =&gt; 2013-12-03T15:47:34Z [state] =&gt; approved [intent] =&gt; sale [payer] =&gt; PayPal\Api\Payer Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [payment_method] =&gt; paypal [payer_info] =&gt; PayPal\Api\PayerInfo Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [email] =&gt; my@email.com [first_name] =&gt; Tom [last_name] =&gt; Hart [payer_id] =&gt; thePayerId [shipping_address] =&gt; PayPal\Api\Address Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [line1] =&gt; 1 Main Terrace [city] =&gt; Wolverhampton [state] =&gt; West Midlands [postal_code] =&gt; W12 4LQ [country_code] =&gt; GB ) ) ) ) ) ) [transactions] =&gt; Array ( [0] =&gt; PayPal\Api\Transaction Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [amount] =&gt; PayPal\Api\Amount Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [total] =&gt; 0.33 [currency] =&gt; GBP [details] =&gt; PayPal\Api\Details Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [subtotal] =&gt; 0.11 [tax] =&gt; 0.11 [shipping] =&gt; 0.11 ) ) ) ) [description] =&gt; Payment description [item_list] =&gt; PayPal\Api\ItemList Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [items] =&gt; Array ( [0] =&gt; PayPal\Api\Item Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [name] =&gt; Flowers [price] =&gt; 0.11 [currency] =&gt; GBP [quantity] =&gt; 1 ) ) ) ) ) [related_resources] =&gt; Array ( [0] =&gt; PayPal\Api\RelatedResources Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [sale] =&gt; PayPal\Api\Sale Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [id] =&gt; 9L998852HN614082X [create_time] =&gt; 2013-12-03T15:47:15Z [update_time] =&gt; 2013-12-03T15:47:34Z [state] =&gt; completed [amount] =&gt; PayPal\Api\Amount Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [total] =&gt; 0.33 [currency] =&gt; GBP ) ) [parent_payment] =&gt; PAY-4S184757A49956741KKO72AY [links] =&gt; Array ( [0] =&gt; PayPal\Api\Links Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [href] =&gt; https://api.sandbox.paypal.com/v1/payments/sale/9L998852HN614082X [rel] =&gt; self [method] =&gt; GET ) ) [1] =&gt; PayPal\Api\Links Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [href] =&gt; https://api.sandbox.paypal.com/v1/payments/sale/abc/refund [rel] =&gt; refund [method] =&gt; POST ) ) [2] =&gt; PayPal\Api\Links Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [href] =&gt; https://api.sandbox.paypal.com/v1/payments/payment/PAY-abc [rel] =&gt; parent_payment [method] =&gt; GET ) ) ) ) ) ) ) ) ) ) ) [links] =&gt; Array ( [0] =&gt; PayPal\Api\Links Object ( [_propMap:PayPal\Common\PPModel:private] =&gt; Array ( [href] =&gt; https://api.sandbox.paypal.com/v1/payments/payment/abc [rel] =&gt; self [method] =&gt; GET ) ) ) ) </code></pre> <p>)</p> <p>I want to convert parts of that (shipping_address being one of them) to a json object (using <code>json_encode/decode()</code>, and store it in my database so in the admin section I can view the address so I know where to send things, however, I can't convert that to a json object, it just returns <code>{}</code>. How can I store these details in my database to view them later?</p> <p>EDIT:</p> <p>Json_encode code</p> <pre><code>$db['address'] = json_encode((array) $dets-&gt;payer-&gt;payer_info-&gt;shipping_address); var_dump(json_last_error()); $db['payerId'] = $dets-&gt;payer-&gt;payer_info-&gt;payer_id; $db['prices'] = json_encode((array) $dets-&gt;transations[0]-&gt;amount); var_dump(json_last_error()); $db['description'] = $dets-&gt;transations[0]-&gt;description; $db['items'] = json_encode((array) $dets-&gt;transations[0]-&gt;item_list-&gt;items); var_dump(json_last_error()); $db['links'] = json_encode((array) $dets-&gt;related_resources[0]-&gt;sale-&gt;links); var_dump(json_last_error()); </code></pre> <p>The output of the $db array is </p> <pre><code>Array ( [userId] =&gt; 10 [paymentId] =&gt; PAY-4VC71851RJ180032AKKPAB3Y [state] =&gt; approved [address] =&gt; {"\u0000PayPal\\Common\\PPModel\u0000_propMap":{"line1":"1 Main Terrace","city":"Wolverhampton","state":"West Midlands","postal_code":"W12 4LQ","country_code":"GB"}} [payerId] =&gt; P77LD9M7MUQN2 [prices] =&gt; [] [description] =&gt; [items] =&gt; [] [links] =&gt; [] ) </code></pre> <p>So some are getting encoded, some arnt.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload