javascript - PhoneGap 中的 PayPal 登录按钮

标签 javascript cordova paypal

我正在尝试在我的 PhoneGap 应用程序上添加一个“使用 PayPal 登录”按钮。我正在按照有关此 stackoverflow 问题的说明进行操作:

Using Paypal Login API

我创建了一个应用程序并匹配了高级选项下的设置。现在我想我没有正确理解这一点。这些是我在使用 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 项目上尝试做同样的事情时看到的:

enter image description here

更新 所以这就是我所做的。我将调用更改为以下内容:

    <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 ,我应该拥有才能发出任何请求。我错过了什么?任何帮助表示赞赏。 enter image description here

更新:我通过使用有效的 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/

相关文章:

javascript - 如何在不使用 AJAX 的情况下向 CouchDB 提交数据(使用普通形式的 PUT)

javascript - 如何在像 Angular 这样的 javascript MVC 框架上隐藏数据库凭据

android - 自定义 RES 屏幕和 RES 图标被替换为默认的 Cordova 屏幕和图标

paypal parallel payment 550001 error 不允许用户执行此操作

c# - 如何将字符串从 PayPal 的 payment_date 转换为日期时间

javascript - 从 json 对象动态构造有序的 html 表

javascript - 我如何找到哪个 JavaScript 正在改变元素的样式?

ios - Cordova 3.3。适用于 iOS 的 Facebook 集成

javascript - 如何从 URL 获取动态值

javascript - 从 XHR 请求接收 OAuth2 token