我正在尝试添加"使用PayPal登录"我的PhoneGap应用程序上的按钮。我按照此stackoverflow问题的说明进行操作:
我创建了一个应用并匹配高级选项下的设置。现在我想我没有正确理解这一点。这些是我在使用PayPal按钮JavaScript Builder(https://developer.paypal.com/docs/integration/direct/identity/button-js-builder/)动态登录时使用的设置:
<body>
<span id="myContainer"></span>
<script src="https://www.paypalobjects.com/js/external/api.js"></script>
<script>
paypal.use( ["login"], function(login) {
login.render ({
"appid": "MyClientId",
"authend": "sandbox",
"scopes": "email address locale",
"containerid": "myContainer",
"locale": "en-us",
"returnurl": "http://localhost"
});
});
</script>
</body>
现在它确实回到我的localhost页面,但该url包含: http://localhost/?error_uri=http%3A%2F%2Flocalhost&error_description=Client+Validation+Error%3A+Invalid+scope.&error=invalid_scope
这是什么意思?为什么说范围无效,客户端验证错误等。它确实回到我指定的页面。还有什么应该从这回来?我无法理解此请求后的下一步是什么。以下是我的理解:在我的PhoneGap应用程序中,我将显示此按钮,供用户向我付款。单击此按钮,系统将提示用户选择通过使用其PayPal帐户登录或输入卡号进行付款。我在Android PhoneGap项目中这样做了,这就是呈现的内容。 JavaScript函数是否通过输入所有这些细节来授权我作为有效用户?应该获得授权的是用户。如果有任何努力可以帮助我理解这一点,请相信。我正在Sandbox测试环境中完成所有这些工作,因此我为买方和业务促进者帐户生成了一个生成的信用卡号。这是我在Android PhoneGap项目上尝试做同样的事情时看到的:
更新 所以这就是我所做的。我改变了我的电话:
<script>
paypal.use( ["login"], function(login) {
login.render ({
"appid": "Af7N5ZkdMg_bh4Uo6_xvGDOBhlDUTptF3BcAsJsHiCj4MmajQt7XTfXIjDqSWeax7HI-C6iDlnlJbfOn",
"authend": "sandbox",
"scopes": "email",
"containerid": "myContainer",
"locale": "en-us",
"returnurl": "http://localhost"
});
});
</script>
我现在收到了这个窗口: 但是,我没有像开发者网站那样获得OAuth访问令牌,我说我应该提出任何请求。我错过了什么?任何帮助表示赞赏。
更新:我通过使用有效的PayPal凭据登录取得了进一步的进展。验证后,我收到了重定向uri下指定的页面。在那个网址中,我有代码=&#34;非常长的代码&#34;追加。现在,如何从此代码中获取OAuth代码,以便我可以执行下一步,要求用户单击Pay with PayPal按钮?我需要通过JavaScript在API中提到的那个POST调用。我想通过单击按钮的方式。我刚刚尝试使用所需的clientID,密码,代码和重定向网址输入一个URL,但它给出了一个错误说明
error_description:&#34;客户端ID或秘密为空&#34;, 错误:&#34; invalid_client&#34;
任何帮助?
答案 0 :(得分:1)
locale
不是有效的范围名称。请改用profile
。
来源https://developer.paypal.com/docs/integration/direct/identity/attributes/