0

i'm entirely new to this site, so i'm sorry in advance if my post is not formatted properly.

Anyway, i have what i expect to be a fairly simple question. I'm extracting values from a "request body"-array-thingy, and i got most of what i need by using these 4 lines of code:

$payment_id = strval($callback_json->id);
$order_id = strval($callback_json->order_id);
$currency = strval($callback_json->currency);
$card_brand = strval($callback_json->metadata->brand);

My problem now is that i've run out talent when trying to get the "amount" value that seems to be a "sub-variable" to "operations".

I've tried doing it like this, but neither of them work:

$amount_total = strval($callback_json->operations[amount]);
$amount_total = strval($callback_json->operations->amount);

So my question now is; How do i format this line to get the value "69500".

I really hope someone out there can help me! :-)

{
    "id":9256797,
    "order_id":"23322651466",
    "accepted":true,
    "type":"Payment",
    "text_on_statement":null,
    "branding_id":null,
    "variables":{},
    "currency":"DKK",
    "state":"new",
    "operations":[{
        "id":1,
        "type":"authorize",
        "amount":69500,
        "pending":false,
        "qp_status_code":"20000",
        "qp_status_msg":"Approved",
        "aq_status_code":"20000",
        "aq_status_msg":"Approved",
        "data":{},
        "callback_url":"http://requestb.in/105y8k81",
        "callback_success":null,
        "callback_response_code":null,
        "created_at":"2015-12-05T12:40:40+00:00"
        }],

"metadata":{
    "type":"card",
    "brand":"visa",
    "last4":"0008",
    "exp_month":11,
    "exp_year":2016,
    "country":"DNK",
    "is_3d_secure":false,
    "hash":"6f976a4e388928beb4ad3OrQHCS2LDGNAFZVK3i54p6q8heV0RRci",
    "number":null,
    "customer_ip":"2.110.77.40",
    "customer_country":"DK",
    "fraud_suspected":false,
    "fraud_remarks":[]
}
0

1 Answer 1

1

use

$amount_total = strval($callback_json->operations[0]->amount);

because [ in json is an open tag for an array.

{'foo':[{'bar':"A"},{'bar':"B"}]}
$val->foo[0]->bar;  # A
$val->foo[1]->bar;  # B

Hope that helps.

Sign up to request clarification or add additional context in comments.

1 Comment

Wow, that was fast as f*ck :D And it works... Thanks a ton, man!! :-)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.