现在我设法访问了新的支付流程(因为 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>