从php SESSION var提取数据

时间:2018-08-28 08:43:29

标签: php json session

我在代码中设置了一个相当复杂的SESSION数据。它包含变量和json数据。我想知道的是如何输出特定的条目“名称”。它应该返回“ John Smith”,但目前不返回任何内容

ps。我应该说,这不是我的代码,它是一个wordpress插件,我只想提取他们在SESSION变量中提供的数据。

我尝试过

print_r($_SESSION['asp_data']->source->name);
print_r($_SESSION['asp_data']['source']->name);
print_r($_SESSION['asp_data']['source']['name'];

以及上述内容的其他变体。

这是_SESSION的var_dump

Array ( [asp_data] => Array ( [product_id] => 73134 [is_live] => 0 [item_name] => IQ Test [stripeToken] => tok_1D42CiLqRQ0yhU0NoaKBXisf [stripeTokenType] => card [stripeEmail] => spam@spammer.com [item_quantity] => 1 [item_price] => 19.99 [discount_item_price] => 19.99 [paid_amount] => 19.99 [amount_in_cents] => 1999 [currency_code] => USD [charge_description] => 1 X $19.99 [addonName] => [button_key] => [charge] => Stripe\Charge JSON: { "id": "ch_1D42CmLqRQ0yhU0NT3f0Zr4N", "object": "charge", "amount": 1999, "amount_refunded": 0, "application": null, "application_fee": null, "balance_transaction": "txn_1D42CmLqRQ0yhU0NHwqH2M9Y", "captured": true, "created": 1535443540, "currency": "usd", "customer": null, "description": "1 X $19.99", "destination": null, "dispute": null, "failure_code": null, "failure_message": null, "fraud_details": [], "invoice": null, "livemode": false, "metadata": [], "on_behalf_of": null, "order": null, "outcome": { "network_status": "approved_by_network", "reason": null, "risk_level": "normal", "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, "receipt_email": "spam@spammer.com", "receipt_number": null, "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "\/v1\/charges\/ch_1D42CmLqRQ0yhU0NT3f0Zr4N\/refunds" }, "review": null, "shipping": null, "source": { "id": "card_1D42CiLqRQ0yhU0NeYtNArFt", "object": "card", "address_city": "London", "address_country": "United Kingdom", "address_line1": "Whitacres Road", "address_line1_check": "pass", "address_line2": null, "address_state": "SCT", "address_zip": "NW1 4DJ", "address_zip_check": "pass", "brand": "Visa", "country": "US", "customer": null, "cvc_check": "pass", "dynamic_last4": null, "exp_month": 2, "exp_year": 2022, "fingerprint": "AROHy31e67u0TucD", "funding": "credit", "last4": "4242", "metadata": [], "name": "John Smith", "tokenization_method": null }, "source_transfer": null, "statement_descriptor": null, "status": "succeeded", "transfer_group": null } [txn_id] => ch_1D42CmLqRQ0yhU0NT3f0Zr4N [billing_address] => John Smith Whitacres Road NW1 4DJ London SCT United Kingdom [shipping_address] => [additional_items] => Array ( ) [order_post_id] => 73150 [item_url] => [charge_date_raw] => 1535443540 [charge_date] => 2018/08/28 08:05:40 ) [score] => 91 )

这是_SESSION变量上FOR EACH的输出-

product_id 73134
is_live 0
item_name IQ Test
stripeToken tok_1D42CiLqRQ0yhU0NoaKBXisf
stripeTokenType card
stripeEmail spam@spammer.com
item_quantity 1
item_price 19.99
discount_item_price 19.99
paid_amount 19.99
amount_in_cents 1999
currency_code USD
charge_description 1 X $19.99
addonName 
button_key 
charge Stripe\Charge JSON: { "id": "ch_1D42CmLqRQ0yhU0NT3f0Zr4N", "object": 
"charge", "amount": 1999, "amount_refunded": 0, "application": null, 
"application_fee": null, "balance_transaction": 
"txn_1D42CmLqRQ0yhU0NHwqH2M9Y", "captured": true, "created": 1535443540, 
"currency": "usd", "customer": null, "description": "1 X $19.99", 
"destination": null, "dispute": null, "failure_code": null, 
"failure_message": null, "fraud_details": [], "invoice": null, "livemode": 
false, "metadata": [], "on_behalf_of": null, "order": null, "outcome": { 
"network_status": "approved_by_network", "reason": null, "risk_level": 
"normal", "seller_message": "Payment complete.", "type": "authorized" }, 
"paid": true, "receipt_email": "spam@spammer.com", "receipt_number": null, 
"refunded": false, "refunds": { "object": "list", "data": [], "has_more": 
false, "total_count": 0, "url": 
"\/v1\/charges\/ch_1D42CmLqRQ0yhU0NT3f0Zr4N\/refunds" }, "review": null, 
"shipping": null, "source": { "id": "card_1D42CiLqRQ0yhU0NeYtNArFt", 
"object": "card", "address_city": "London", "address_country": "United 
Kingdom", "address_line1": "Whitacres Road", "address_line1_check": "pass", 
"address_line2": null, "address_state": "SCT", "address_zip": "NW1 4DJ", 
"address_zip_check": "pass", "brand": "Visa", "country": "US", "customer": 
null, "cvc_check": "pass", "dynamic_last4": null, "exp_month": 2, 
"exp_year": 2022, "fingerprint": "AROHy31e67u0TucD", "funding": "credit", 
"last4": "4242", "metadata": [], "name": "John Smith", 
"tokenization_method": null }, "source_transfer": null, 
"statement_descriptor": null, "status": "succeeded", "transfer_group": null 
}
txn_id ch_1D42CmLqRQ0yhU0NT3f0Zr4N
billing_address John Smith Whitacres Road NW1 4DJ London SCT United Kingdom 
shipping_address 
additional_items Array
order_post_id 73150
item_url 
charge_date_raw 1535443540
charge_date 2018/08/28 08:05:40

1 个答案:

答案 0 :(得分:0)

您需要先解析json对象,然后才能使用php读取它,例如:

// parse the json string value of the 'charge' key to make it a php array
$json = json_decode($_SESSION['asp_data']['charge'], true);
// echo the value of the 'name' key from the parsed json object
echo $json['source']['name'];