贝宝争议沙盒测试

时间:2020-04-29 17:36:35

标签: paypal paypal-sandbox

我试图在沙盒中测试Paypal纠纷,并遵循以下指南: https://developer.paypal.com/docs/integration/direct/customer-disputes/integration-guide/#sandbox-only-methods

但是,在第2步(获得买方许可)上,贝宝提供的用于生成连接按钮的代码引发了js语法错误,因此我将其更改为:

<span id='cwppButton'></span>
<script src="https://www.paypalobjects.com/js/external/connect/api.js"></script>
<script>
        paypal.use( ['login'], function (login) {
                login.render ({
                        "appid": "MY_CLIENT_ID",
                        "authend": "sandbox",
                        "scopes": "openid",
                        "containerid": "cwppButton",
                        "locale": "en-us",
                        "buttonType": "CWP",
                        "buttonSize": "lg",
                        "returnurl": "https://a62add0d.ngrok.io/api/payments/paypal/get-token/"
                });
          });
</script>

您如何看到我将范围更改为“ openid”,在此示例中,由于将贝宝提供的链接分开,导致出现“无效范围”错误 但是,在此步骤中,我从按钮获得了访问令牌。 我面临的下一个问题是在第4步(为PayPal授权声明生成JSON Web令牌)上,paypal提供的代码给出了语法错误,因此我将其替换为:

<span id='cwppButton'></span>
<html>
<script>
            function base64url(source) {
                    encodedSource = btoa(source);
                    encodedSource = encodedSource.replace(/=+$/, '"');
                    encodedSource = encodedSource.replace(/\+/g, '-');
                    encodedSource = encodedSource.replace(/\//g, '-');

                    return encodedSource;
            }
            function generateJWT() {
                    var header = {"alg": "none", "typ": "JWT"};
                    var data = {"iss"   :"MY_CLIENT_ID",
                               "email" : "casino.player@gmail.com" };
                    document.write(base64url(JSON.stringify(header)) + "." +
                    base64url(JSON.stringify(data)) + ".");
            }
</script>
<body onload="generateJWT()"/>

由于在第6步中运行了创建争议请求,因此出现了此错误:

{
    "error": "invalid_request",
    "error_description": "No permissions to set target_client_id"
}

我的问题是如何在沙盒中正确设置和测试Paypal纠纷?如果有人在争议测试中遇到相同的问题?

1 个答案:

答案 0 :(得分:1)

从步骤1 https://developer.paypal.com/docs/integration/direct/customer-disputes/integration-guide/#sandbox-only-methods开始:

Set up your REST app with the following scope:

https://uri.paypal.com/services/disputes/create = DISPUTE_CREATE

您这样做了吗?在集成需要批准的API时,可能需要为PayPal的沙箱帐户/沙箱客户端ID REST APP完成第一步。

然后,您将能够在必要的范围内完成步骤2。


如果没有所需的范围和权限,您将在步骤4中得到该错误。