1

Ich versuche Facebook Credits als Zahlungsmethode mit dem as3-sdk zu integrieren. Ich habe es geschafft, dass "earn_credits" und "buy_credits" funktionieren. Die dritte und wichtigste Option, "buy_item", zeigt jedoch nicht den Bezahldialog an. Irgendwie scheint die Verbindung zur callback.php der Grund für das Problem zu sein. Hinweis: Ich habe die Rückruf-URL in meinen Apps-Einstellungen eingegeben, also habe ich das nicht vergessen. Ich verwende die Beispiel-PHP-Datei aus den Facebook-Entwickler-Dokumenten.Integriere Facebook Credits mit AS3-SDK

Das ist mein as3-Code.

Ich denke, die JSON-Codierung könnte das Problem sein, aber ich bin mir nicht sicher.

Ich verwende das Beispiel PHP-Datei aus dem Facebook-Entwickler docs (Auszug):

<?php 

$app_secret = '***********************'; 

// Validate request is from Facebook and parse contents for use. 
$request = parse_signed_request($_POST['signed_request'], $app_secret); 

// Get request type. 
// Two types: 
// 1. payments_get_items. 
// 2. payments_status_update. 
$request_type = $_POST['method']; 

// Setup response. 
$response = ''; 

if ($request_type == 'payments_get_items') { 
    // Get order info from Pay Dialog's order_info. 
    // Assumes order_info is a JSON encoded string. 
    $order_info = json_decode($request['credits']['order_info'], true); 

    // Get item id. 
    $item_id = $order_info['item_id']; 

    // Simulutates item lookup based on Pay Dialog's order_info. 
    if ($item_id == '1a') { 
    $item = array(
     'title' => '100 some game cash', 
     'description' => 'Spend cash in some game.', 
     // Price must be denominated in credits. 
     'price' => 1, 
     'image_url' => '**********************/banner1.jpg', 
    ); 

    // Construct response. 
    $response = array(
        'content' => array(
           0 => $item, 
           ), 
        'method' => $request_type, 
       ); 
    // Response must be JSON encoded. 
    $response = json_encode($response); 
    } 

Jede Hilfe ist wirklich zu schätzen.

Antwort

1

Okay, so kann ich nicht bestätigen, dass dies funktioniert aber according to this forum, es tut:

var title:String = "TITLE FOO"; 
var desc:String = "FOO"; 
var price:String = "200"; 
var img_url:String = [some image url]; 
var product_url:String = [some product url]; 

// create order info object 
var order_info:Object = { 
    "title":title, 
    "description":desc, 
    "price":price, 
    "image_url":img_url, 
    "product_url":product_url 
}; 


// calling the API ... 
var obj:Object = { 
    method: 'pay.prompt', 
    order_info: order_info, 
    purchase_type: 'item', 
    credits_purchase: false 
}; 

Facebook.ui('pay', obj, callbackFunction); 

Ich sehe, dass dieses Beispiel von Ihnen etwas auf der AS3 Seite unterscheidet sich so hoffentlich diese nfo wird Ihnen helfen, Ihr Problem zu lösen. Ich weiß, dass dies nicht der beste Weg ist, um Fragen zu beantworten, aber ich kann nach ein paar Tagen hier sehen, niemand hat eine Antwort auf Sie, so dass ich dachte, irgendetwas könnte zu diesem Zeitpunkt helfen. :)

+0

Vielen Dank! Ich habe festgestellt, dass Sie keine JSON-codierte Zeichenfolge verwenden. Aber die Credits callback.php von der fb-Entwickler-Seite erwartet, dass order_info eine json-codierte Zeichenfolge ist Sie wissen von einem Callback.php Beispiel aw/o der JSON-Code? – TicketToRide

+0

Es tut mir leid, ich muss mehr darüber nachsehen ... wie ich schon sagte, das ist nicht meine Lösung und ich habe nicht einmal versucht, dies sogar mich selber. –

0

Danke @Ascension Systems!

Dies funktionierte gut aus und ist viel besser als ein Pop-up über HTML erstellen und mit navigateToURL etc ...

Eine Einschränkung allerdings, die Ihre Lösung verursacht zunächst nicht für mich zu arbeiten:

wenn Sie auf der callback.php Probe von Facebook (am Ende dieser Seite: http://developers.facebook.com/docs/credits/callback/) vorgesehen sind, zu verlassen, dann müssen Sie diesen Tag zu Ihrem ORDER_INFO Objekt hinzuzufügen:

var item_id:String = "1a"; 

var order_info:Object = { 
    "title":title, 
    "description":desc, 
    "price":price, 
    "image_url":img_url, 
    "product_url":product_url, 
    "item_id":item_id 
}; 

Ohne item_id definiert, die, wenn Aussage in Facebook's ca llback.php (if ($ item_id == '1a') ...) wird fehlschlagen, und Sie erhalten ein unangenehmes Fenster: "App reagiert nicht Die App, die Sie verwenden, reagiert nicht. Bitte versuchen Sie es später erneut. "