4

I have never used JSON before and am trying to retrieve the values POSTed to my site from coinbase. But I have no idea how to.

Information about the IPN and callback can be found here: https://coinbase.com/docs/merchant_tools/callbacks

To be more specific, what I understand so far is that I can use json_decode($jsonData); to turn the JSON data into PHP data. But how do I set the variable $jsonData?

This is the response that is supposed to be sent:

{"order":{"id":null,"created_at":null,"status":"new","total_btc":
{"cents":100000000,"currency_iso":"BTC"},"total_native":
{"cents":2263,"currency_iso":"USD"},"custom":"123456789","button":
{"type":"buy_now","name":"Test Item","description":null,"id":null},"transaction":
{"hash":"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b","confirmations":0}}}
  • Could you put var_dump($_POST); in your callback and post the output? – Nick ODell Feb 8 '13 at 2:22
  • I just tried $data = var_dump($_POST); file_put_contents('coinbase.txt', $data); with no luck. – fwho Feb 8 '13 at 2:32
  • Ah, of course. It's been a while since I've done any php. Try $data = print_r($_POST, TRUE); file_put_contents('coinbase.txt', $data); – Nick ODell Feb 8 '13 at 2:34
  • I got Array ( ) It is a step forward though! – fwho Feb 8 '13 at 2:40
  • Do you have a shell on this computer? If so, you could do nc -l 8080, then set the callback url to http://yoursite.com:8080/ to see exactly what it's sending. – Nick ODell Feb 8 '13 at 4:36
0
$data = json_decode(file_get_contents('php://input'), TRUE);
$text = print_r($data,true);
file_put_contents('coinbase.txt', $text);

This actually sends the following information to a text file:

Array
(
    [order] => Array
        (
            [id] => 
            [created_at] => 
            [status] => new
            [total_btc] => Array
                (
                    [cents] => 100000000
                    [currency_iso] => BTC
                )

            [total_native] => Array
                (
                    [cents] => 2270
                    [currency_iso] => USD
                )

            [custom] => 123456789
            [button] => Array
                (
                    [type] => buy_now
                    [name] => Test Item
                    [description] => 
                    [id] => 
                )

            [transaction] => Array
                (
                    [hash] => 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
                    [confirmations] => 0
                )

        )

)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.