FirefoxOS - 来自特权打包网络应用程序的fxpay微支付

时间:2015-02-18 09:47:52

标签: payment firefox-os

首先,我在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

1 个答案:

答案 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库进行应用内付款。从最新版本开始,使用托管应用程序非常好。也许这会更容易。