5

根据此处提供的新付款文档,如果我们想要动态定价,我们需要设置一个脚本,FB 会调用它说“用户想要购买 x 你的物品并希望以货币 CC 支付”,并且我们的脚本应该以该货币返回价格. 什么文档不清楚,但我们的测试表明,FB 希望我们返回一个项目的价格,四舍五入到小数点后两位。因此,如果 FB 询问我的脚本“告诉我 14 个代币的美元价格”并且我希望 14 个代币花费 2 美元,我需要返回 round(2/14, 2) 即 0.14,然后 FB 将这个 0.14 乘以 14 和向用户显示他需要支付 1.96 美元。

那么我应该如何让 FB 向用户显示他需要为 14 个代币支付 2 美元?

4

1 回答 1

0

现在我设法访问了新的支付流程(因为 FB 发布了他们的“重大变更公告”),我可以告诉你我们是如何设法解决类似问题的。

情况:
我们向用户提供了在运行时单独生成的许多产品,类似于您的问题:其中一种产品可能包含固定价格的一定数量的游戏货币。在另一个时候,用户可能会免费获得额外数量的货币,从而产生包含+x游戏货币的产品,但价格相同

解决方案:
我们动态定义产品,即我们调用一个脚本页面来呈现单个产品。为此,我们提供了一个安全加密的令牌,它通过 FB.ui 调用作为request_id发送。产品脚本现在解密令牌并且 - 如果安全检查通过 - 通过动态创建和输出 og:product HTML 来呈现产品...

注意:
请确保生成的产品og:url标签与调用的 url完全匹配,例如,如果您创建的产品调用http://www.example.com/product.php?test=123&token=nkvadkfjgakajdvkaldhjf您产品的元它的 url 必须如下所示:

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

否则,Facebook 将无法遵循重定向...请记住:每个 og:product 都必须是自引用的,因此指向调用它的确切 url。

所描述过程的缺点是 FB 将无法缓存您的产品,因为每个使用的request_id都必须是唯一的。但是无论如何产品都是单独生成的,所以为什么要打扰......

简而言之:
只需动态创建满足您需求的产品并使其指向自身,使用数量1而不是14并将最终价格设置为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>
于 2013-06-07T10:31:03.970 回答