PayPal API 权限请求将用户带到 PayPal 主页

PayPal API permissions request takes user to PayPal home page

我正在使用 PayPal Permissions SDK (Classic/NVP) 寻求第三方支付授权。

第一次有人点击我的按钮将他们重定向到 PayPal 以登录并授权他们最终到达 PayPal 主页的请求。如果他们返回并再次点击我的按钮,这次它会起作用并将他们带到正确的 PayPal 页面。

这是我的代码:

RequestPermissionsRequest rp = new RequestPermissionsRequest();
rp.scope = new List<string>();
rp.scope.Add("EXPRESS_CHECKOUT");
rp.callback = "my return url here";
rp.requestEnvelope = new RequestEnvelope("en_US");
RequestPermissionsResponse rpr = null;
PermissionsService service = new PermissionsService(PayPalClassicHelpers.Configuration.GetAcctAndConfig());
rpr = service.RequestPermissions(rp);
Response.Redirect("https://www.paypal.com/webscr&cmd=_grant-permission&request_token=" + rpr.token);

这会将他们重定向到 PayPal URL:

https://www.paypal.com/webscr&cmd=_grant-permission&request_token=***rpr.token value***

但他们第一次来到这里:

https://www.paypal.com/us/home

看请求头和响应头,第一次看到这个:

  1. 获取:https://www.paypal.com/webscr&cmd=_grant-permission&request_token=***
  2. 响应:HTTP/2.0 200 OK
  3. 各种CSS、JS和图片请求
  4. POST: https://www.paypal.com/auth/validatecaptcha
  5. 响应:HTTP/2.0 302 找到 位置:/webscr&cmd=_grant-permission&request_token=***
  6. 获取:https://www.paypal.com/webscr&cmd=_grant-permission&request_token=***
  7. 响应:HTTP/2.0 302 找到 地点:https://www.paypal.com/home

在后续请求中没有 POST 到 https://www.paypal.com/auth/validatecaptcha

我已经在几个网络和计算机上试过了,结果总是一样。

有没有人遇到过这种情况并知道原因和解决办法?

我不确定,但我在测试和调试我的 PayPal 定期计费代码时遇到了同样的问题。

在我的情况下,大多数情况下是因为用户已经使用其他帐户登录并且 PayPal 在浏览器中保存了一些 cookie。

这可能是saved cookies的问题和开发过程中经常使用的各种账号,比如sandbox seller和sandbox buyer。

检查一下,看看问题是否仍然存在。

同样,这些只是我的经验,如果您的真实用户确实在生产应用程序中遇到过这种情况,那么它可能完全是另外一回事。

只需使用'?' webscr.

后的符号

例如改

https://www.paypal.com/webscr&cmd=_grant-permission&request_token=

https://www.paypal.com/webscr?cmd=_grant-permission&request_token=