我正在尝试在网站上设置PayPal登录,并使用PayPal网站上的自定义按钮生成器来创建登录按钮:
<div id="proceed-to-confirmation-page-link" class="text-right">
<span id="lippButton"></span>
</div>
<script src='https://www.paypalobjects.com/js/external/api.js'></script>
<script>
paypal.use(['login'], function (login) {
login.render({
"appid": "<MY APP ID>",
"authend": "sandbox",
"scopes": "openid profile address",
"containerid": "lippButton",
"locale": "en-us",
"text": "Login to PayPal to order",
"redirect_uri": "<MyRedirectURI>"
});
});
</script>
我已经确认appid和redirect_uri是正确的。我尝试了http://localhost:####/myredirecturi和http://www.myproductionsite.com/myredirecturl。我在developer.paypal.com上添加了这两个返回网址,等待了三个小时或更长时间。
无论我做什么,我都会收到错误消息: 对于那个很抱歉 看起来不支持此操作。请返回并报告此错误,以便我们以后可以提供支持。 (client_id或redirect_uri无效)
我理解错误消息的内容,但我已经三次检查这些是正确的。我错过了什么?
我阅读了PayPal的文档,但它非常不合适 - 它解释了应该发生的事情,但几乎没有提供有关如何将授权代码返回给我的网站的任何细节。如果您能指出我进一步的文档,我将非常感激。
答案 0 :(得分:0)
这是我的问题的部分答案:我曾尝试使用密钥&#34; redirect_uri&#34;而不是&#34; returnurl&#34;因为我曾在某个地方看到别人的东西。事实证明&#34; returnurl&#34;是对的。
<div id="proceed-to-confirmation-page-link" class="text-right">
<span id="lippButton"></span>
</div>
<script src='https://www.paypalobjects.com/js/external/api.js'></script>
<script>
paypal.use(['login'], function (login) {
login.render({
"appid": "<MY APP ID>",
"authend": "sandbox",
"scopes": "openid profile address",
"containerid": "lippButton",
"locale": "en-us",
"text": "Login to PayPal to order",
"redirect_uri": "<MyRedirectURI>"
});
});
</script>
但是,我仍然不知道PayPal如何返回确认用户已登录的授权码。我在会话中看不到任何内容。
答案 1 :(得分:0)
我遇到了同样的问题。 您可能使用错误的应用ID。在https://api.sandbox.paypal.com/v1/oauth2/token上发帖会返回:
{
"scope": "scopes",
"nonce": "something",
"access_token": "something",
"token_type": "Bearer",
"app_id": "some id",
"expires_in": 32400
}
这不是你想要的appid。使用开发人员信息中心中的客户端ID 。