2013-05-08 30 views
5

Zgodnie z nową dostępną dokumentacją płatności here jeśli chcemy dynamiczne ceny, musimy skonfigurować skrypt, który FB będzie wywoływał, mówiąc: "Użytkownik chce kupić x swoje przedmioty i chce zapłacić w walucie CC "i nasz skrypt powinien zwrócić cenę w tej walucie. Jaka dokumentacja nie jest jasna, ale nasze testy pokazały, że FB oczekuje, że zwrócimy cenę jednej pozycji zaokrągloną do dwóch miejsc po przecinku. Jeśli więc FB zada mi mój skrypt "Powiedz mi cenę 14 żetonów w USD" i chcę, aby 14 żetonów kosztowało 2 USD, muszę powrócić do rundy (2/14, 2), która wynosi 0,14, a następnie FB pomnoży to 0,14 z 14 i pokaż użytkownikowi, że musi zapłacić 1,96 $.Jak zapewnić dokładne ceny dzięki nowemu systemowi płatności

Więc jak mam sprawić, by FB pokazał użytkownikowi, że musi zapłacić 2 dolary za 14 żetonów?

+0

To, co mnie (i prawdopodobnie wiele innych) interesuje, to: Jak uzyskać nowy przepływ do działania? Ja (jak wiele innych) zawsze otrzymuję _1383005 ("Aplikacja nie może używać nowego przepływu") _ błąd ... Jeśli chodzi o twój problem: Ponieważ masz przejść przez (x, 2), powiedziałbym, że jedyną opcją jest ** zdefiniowanie ** produktu, który zawiera dokładnie 14 żetonów i kosztuje dokładnie 2 dolary. – loptrinho

Odpowiedz

0

Teraz, gdy udało mi się uzyskać dostęp do nowego przepływu płatności (jak FB dokonał "powiadomienia o zmianie brekingu"), mogę powiedzieć, w jaki sposób udało nam się obejść podobny problem.

Sytuacja:
Oferujemy szereg produktów dla użytkownika, które są indywidualnie generowanych w czasie wykonywania, podobny do Twojego problemu: jednego z tych produktów może na przykład zawierać ilość w grze waluty po ustalonej cenie. W innym czasie użytkownik może otrzymać dodatkową kwotę waluty za darmo, co spowoduje, że produkt będzie zawierał + x walutę gry, ale w tej samej cenie.

Rozwiązanie:
Definiujemy produkt dynamicznie, tj nazywamy stronę skryptu, który renderuje indywidualny produkt. W tym celu zapewniamy bezpieczny zaszyfrowany token wysyłany z wywołaniem FB.ui jako request_id. Skrypt produkt teraz odszyfrowuje token i - jeśli przechodzą kontrole bezpieczeństwa - czyni produkt poprzez dynamiczne tworzenie i wyprowadzania og: HTML produktu ...

Uwaga:
proszę upewnić się, że wytwarzane produkty og: url tag ma dokładnie pasuje do wywoływanego adresu URL, np. jeśli tworzysz produkt wzywającą meta http://www.example.com/product.php?test=123&token=nkvadkfjgakajdvkaldhjf swojego produktu na jego adres URL musi wyglądać następująco:

<meta property="og:url" content= "http://www.example.com/product.php?test=123&token=nkvadkfjgakajdvkaldhjf" /> 

Inaczej, Facebook nie będzie w stanie wykonać przekierowanie ... Pamiętaj: Każdy og: produkt musi być samoodnośnym, wskazując w ten sposób dokładny adres URL, w którym się go nazywa.

Wadą opisanej procedury jest to, że FB nie będzie w stanie buforować twojego produktu, ponieważ każdy użyty request_id musi być unikalny. Ale następnie produkt jest indywidualnie generowany tak, więc po co się męczyć ...

W skrócie:
Wystarczy stworzyć produkt, który dynamicznie spełnia Twoje potrzeby i sprawiają, że punkt do siebie, stosując ilość zamiast z i ustawienie ostatecznej ceny na 2 USD.

<!DOCTYPE html> 
<html> 
    <head prefix= 
    "og: http://ogp.me/ns# 
    fb: http://ogp.me/ns/fb# 
    product: http://ogp.me/ns/product#"> 
    <meta property="og:type"     content="og:product" /> 
    <meta property="og:title"     content="14 tokens" /> 
    <meta property="og:image"     content="http://www.example.com/imageUrl.png" /> 
    <meta property="og:description"   content="You'll get 14 tokens here. Use them to your liking..." /> 
    <meta property="og:url"     content="[exact_path_to_this_file_including_all_params]" /> 
    <meta property="product:price:amount"  content="2"/> 
    <meta property="product:price:currency" content="USD"/> 
    </head> 
</html>