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

时间:2017-06-13 22:29:15

标签: paypal paypal-nvp

我使用PayPal Permissions SDK(经典/ NVP)来寻求第三方付款的授权。

有人第一次点击我的按钮,将他们重定向到PayPal进行登录并授权请求,他们最终会进入Pay​​Pal主页。如果他们返回并再次单击我的按钮,则此时它会正常工作并将它们带到正确的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网址:​​

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确定
  3. 各种CSS,JS和图像请求
  4. POST:https://www.paypal.com/auth/validatecaptcha
  5. 响应:找到HTTP / 2.0 302 位置:/ webscr&amp; cmd = _grant-permission&amp; request_token = ***
  6. 获取:https://www.paypal.com/webscr&cmd=_grant-permission&request_token= ***
  7. 响应:找到HTTP / 2.0 302 地点:https://www.paypal.com/home
  8. 在后续请求中,https://www.paypal.com/auth/validatecaptcha没有POST。

    我在一些网络和计算机上试过这个,但它总是一样的。

    有没有人经历过这个并知道原因和解决方案?

2 个答案:

答案 0 :(得分:1)

只需使用&#39;?&#39; webscr之后的符号。

例如,更改

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

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

答案 1 :(得分:0)

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

在我的情况下,大部分时间都是因为用户已经使用其他帐户登录,而PayPal在浏览器中保存了一些Cookie。

这可能是保存的Cookie问题以及开发过程中经常使用的各种帐户,例如沙箱卖家和沙盒买家。

请检查并查看问题是否仍然存在。

再次这些只是我的经验,如果您的真实用户实际上在生产应用程序中体验到这一点,那么它可能完全是其他东西。