Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

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}}}
share|improve this question
    
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

1 Answer 1

up vote 0 down vote accepted
$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
                )

        )

)
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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