我正在尝试在我的 PhoneGap 应用程序上添加一个“使用 PayPal 登录”按钮。我正在按照有关此 stackoverflow 问题的说明进行操作:
我创建了一个应用程序并匹配了高级选项下的设置。现在我想我没有正确理解这一点。这些是我在使用 PayPal 按钮 JavaScript 生成器 (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>
现在它确实返回到我的本地主机页面,但该 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 函数是否通过输入所有这些详细信息将我授权为有效用户?应该获得授权的是用户。请感谢任何帮助我理解这一点的努力。我在沙盒测试环境中完成所有这些工作,因此我有一个为买家和业务服务商帐户生成的信用卡号。这是我在 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 访问 token ,我应该拥有才能发出任何请求。我错过了什么?任何帮助表示赞赏。
更新:我通过使用有效的 PayPal 凭据登录取得了进一步的进展。验证后,我收到了redirect uri下指定的页面。在那个网址中,我附加了代码=“一个很长的代码”。现在我如何从此代码中获取 OAuth 代码,以便我可以执行下一步,要求用户单击“使用 PayPal 支付”按钮?我需要通过 JavaScript 进行 API 中提到的 POST 调用。我想的方式是点击一个按钮。我只是尝试输入一个包含所需 clientID、密码、代码和重定向 url 的 URL,但它给了我一个错误,指出
error_description: "client id or secret is null", 错误:“invalid_client”
有什么帮助吗?
最佳答案
locale
不是有效的范围名称。请改用 profile
。
来源https://developer.paypal.com/docs/integration/direct/identity/attributes/
关于javascript - PhoneGap 中的 PayPal 登录按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29888185/