我在代码中设置了一个相当复杂的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
答案 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'];