首先,我在firefox 0S 2.0模拟器上进行所有测试
我有一个网站是一个游戏webportal。
我制作了一个包含所有要求的专用打包应用程序。作为 launch_path ,我拿了一些“ index.html ”文件,在这个文件中,我写了所有基本的信息,特别是这个在标题中:
<meta http-equiv="refresh" content="5;url=http://url10.infinitgame.com?webview=1">
就此而言,它运作正常。这意味着我可以在firefox OS桌面内启动我的应用程序并进入我的webportal
接下来,我按照某些文档中的说明打包了fxpay库,并将其添加到我的游戏webportal服务器中。我已经制作了类似教程的所有内容,它与假冒产品完美配合。
在此之后,我制作了一个“真正的产品”(创建一个Bango帐户,选择国家,最后创建真正的产品)。然后我关闭了javascript代码中的假冒产品。现在我找不到我的产品,并且收到了错误消息:
-"using default adapter"
-"using Firefox Marketplace In-App adapter"
-"using custom adapter"
-"receipts fetched from mozApps:" 0
-"receipts fetched from localStorage:" 0
-"Number of receipts installed: 0"
-"about to fetch real products for app" "http%3A%2F%2Furl10.infinitgame.com"
-"opening" "GET""to" "https://marketplace.firefox.com/api/v1/payments/http%3A%2F%2Furl10.infinitgame.com/in-app/?active=1"
-"BAD_API_RESPONSE" "status:" 404 "for URL:" "https://marketplace.firefox.com/api/v1/payments/http%3A%2F%2Furl10.infinitgame.com/in-app/?active=1"
-"BAD_API_RESPONSE" "response:" "{"detail":"Not found"}"
-"Error getting products:" "BAD_API_RESPONSE".
我还在网上看到,在使用生产付款之前必须发布应用程序。但是我发现很多关于firefoxOS的矛盾信息,因为社区很小。
这是我的 manifest.webapp
{
"version": "1.0.0",
"name": "T-Games",
"description": "T-games service de malade",
"launch_path": "/index.html",
"type": "privileged",
"icons": {
"16": "/img/icon-16.png",
"48": "/img/icon-48.png",
"128": "/img/icon-128.png"
},
"developer": {
"name": "Serial Screener",
"url": "http://url0.infinitgame.com"
},
"permissions": {
"systemXHR": {
"description": "Required to access payment API"
}
},
"chrome": { "navigation": true },
"origin": "app://url10.infinitgame.com",
"csp" : "default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'"
}
这是我的 index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>T-Games</title>
<meta name="description" content="TGames, service de jeux">
<meta name="viewport" content="width=device-width">
<meta http-equiv="refresh" content="5;url=http://url10.infinitgame.com?webview=1">
</head>
<body>
<p>Loading...</p>
<script type="text/javascript" src="fxpay.min.js"></script>
</body>
</html>
感谢您的时间和支持。
和Tomy
答案 0 :(得分:0)
在API返回您的真实产品之前,您的应用必须完全获得批准并公开发布。在开发人员中心,您可以点击应用侧边栏中的状态,看看它是否公开。非公开应用可能会导致您看到的BAD_API_RESPONSE(404)。
另一个问题是,根据您的清单,您的应用已打包并且来源为app://url10.infinitgame.com
。但是,控制台日志表明您正在从原始http://url10.infinitgame.com
的Web运行应用程序。这也会导致BAD_API_RESPONSE(404),因为您的产品是在app:
来源注册的,而不是http:
来源。
如果我理解正确,您将从打包的应用内重定向到http:
网址。如果是这种情况,则需要在打包的应用内运行所有fxpay
代码,并执行window.postMessage
之类的操作,将结果传递到http:
网址。您还必须切换到使用iframe而不是重定向,以便您可以从顶级打包应用窗口运行JavaScript。
您不需要使用打包的应用与fxpay
库进行应用内付款。从最新版本开始,使用托管应用程序非常好。也许这会更容易。