2012-05-10 4 views
1

Facebook 앱에 TrialPay/Offerwall/Dealspot을 구현하려고합니다. 자신의 documentation에서 그들은 그들이 당신을 보낼 수있는 JSON 어떻게 생겼는지의 예를 제공합니다 :TrialPay가 콜백시 조작 된 JSON을 전송합니다.

{"order_id":9006316682257,"buyer":409697,"app":107032282669135,"receiver":409697, 
"amount":1,"time_placed":1322622026,"update_time":1322622027,"data":"", 
"items":[{"item_id":"0","title":"3 Fred Currency","description":"Make it rain!", 
"image_url":"http:\/\/external.ak.fbcdn.net\/safe_image.php?d=AQDldsPcWsejAJdC&url=http\u00253A\u00252F\u00252Fwww.etftrends.com\u00252Fwp-content\u00252Fuploads\u00252F2011\u00252F10\u00252Fcurrency-trading.jpg", 
"product_url":"","price":1,"data":"{\"modified\":{\"product\":\"URL_TO_APP_CURR_WEBPAGE\", 
\"product_title\":\"Fred Currency\",\"product_amount\":3,\"credits_amount\":1}}"}],"status":"placed"} 

당신이 가야 배열로 json_decode 경우 그들은 말 :

Array (
    [order_id] => 9006316682257 
    [buyer] => 409697 
    [app] => 107032282669135 
    [receiver] => 409697 
    [amount] => 1 
    [time_placed] => 1322622026 
    [update_time] => 1322622027 
    [data] => 
    [items] => Array (
       [0] => Array (
         [item_id] => 0 
         [title] => 3 Fred Currency 
         [description] => Make it rain! 
         [image_url] => http://external.ak.fbcdn.net/safe_image.php?d=AQDldsPcWsejAJdC&url=http%3A%2F%2Fwww.etftrends.com%2Fwp-content%2Fuploads%2F2011%2F10%2Fcurrency-trading.jpg 
         [product_url] => 
         [price] => 1 
         [data] => {"modified":{"product":"URL_TO_APP_CURR_WEBPAGE","product_title":"Fred Currency","product_amount":3,"credits_amount":1}} 
        ) 
      ) 
    [status] => placed 
) 

그것은하지 않습니다 실제로 데이터는 다음과 같이 보입니다.

[data] => "{"modified":{"product":"URL_TO_APP_CURR_WEBPAGE","product_title":"Fred Currency","product_amount":3,"credits_amount":1}}" 

JSON이 문자열 안에 있으면 JSON이 유효하지 않습니다. 그 따옴표를 제거하는 간단한 방법이 있습니까?

답변

0

개발자. Google 문서 사이트에 오타가있을 수 있으며 메모를 보내서 다시 확인해 보겠습니다.

한편, 인앱 통화에 대한 쿠폰 기반 주문이 완료되면 Facebook이 서버 측 콜백에 전달하는 실제 JSON이 유효하고 원하는 결과로 올바르게 디코딩되는지 확인했습니다. 위.

이 스레드 범위 밖에서 다른 문제가 발생하면 저를 직접 핑할 수 있습니다.

편집

:

코드를 복사하고 JSONLint에 대해 검증 한 후, 지금 당장 당신이 언급 한 시점에서 문제가 발생했습니다. 그러나 \"product_title\" 전에 불량 줄 바꿈을 제거한 후에 올바르게 검증 할 수있었습니다. 예 PHP는 아래에 포함 니펫

<?php 

$order_details = '{"order_id":9006316682257,"buyer":409697,"app":107032282669135,"receiver":409697,"amount":1,"time_placed":1322622026,"update_time":1322622027,"data":"","items":[{"item_id":"0","title":"3 Fred Currency","description":"Make it rain!","image_url":"http:\/\/external.ak.fbcdn.net\/safe_image.php?d=AQDldsPcWsejAJdC&url=http\u00253A\u00252F\u00252Fwww.etftrends.com\u00252Fwp-content\u00252Fuploads\u00252F2011\u00252F10\u00252Fcurrency-trading.jpg","product_url":"","price":1,"data":"{\"modified\":{\"product\":\"URL_TO_APP_CURR_WEBPAGE\",\"product_title\":\"Fred Currency\",\"product_amount\":3,\"credits_amount\":1}}"}],"status":"placed"}'; 
$order_details_decoded = json_decode($order_details, true); 
$order_details_decoded['items'][0]['data'] = json_decode($order_details_decoded['items'][0]['data'], true); 
print_r($order_details_decoded); 

나는 다른 어떤이 스레드의 범위 밖에서 온다면, 저에게 직접 핑 주시기 초기 언급 한 바와 같이.

+0

감사합니다. Rob, 내게 FB에 의해 보내지는 응답을 보니 내 것이 당신의 것이 아닌 추가 백 슬래시가있는 것으로 보입니다. 특정 사례를 보내고 싶다면 선호하는 연락 방법이 있습니까? – keybored

0

json_decode($json_string, true);을 연결 배열로 변환 해 보셨습니까?

+0

JSON이 유효하지 않은 경우 json_decode가 도움이되지 않습니다. – Madbreaks

+0

내 실수로 그는 배열 플래그가 누락되어 객체를 가져 왔지만 배열을 기대하고있었습니다. – Danny

2

먼저 Trialpay 사이트에서 앱 구성을 완료해야합니다. 따라서 URL_TO_APP_CURR_WEBPAGE입니다. 여기서 문제는 까지 앱 구성을 완료하지 않아 유효한 JSON 인을 생성 한 것일 수 있습니다.

그래도 답변이되지 않는 경우, 여전히 유효하지 않은 JSON (유효하지 않음, 동의하지 않음)이 Trialpay 담당자에게 연락하는 것이 좋습니다. 그들은 대개 반응이 좋으며 게임 개발 과정에서 제품의 문제점을 발견했습니다.

행운을 빈다 - 여기에 다시 게시하면/더 자세한 정보를 찾을 수 있습니다.

건배 여기 TrialPay에서