我使用PayPal Permissions SDK(经典/ 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网址:
https://www.paypal.com/webscr&cmd=_grant-permission&request_token=***rpr.token value***
但他们第一次来到这里:
https://www.paypal.com/us/home
查看请求和响应标头,我第一次看到这个:
在后续请求中,https://www.paypal.com/auth/validatecaptcha
没有POST。
我在一些网络和计算机上试过这个,但它总是一样的。
有没有人经历过这个并知道原因和解决方案?
答案 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问题以及开发过程中经常使用的各种帐户,例如沙箱卖家和沙盒买家。
请检查并查看问题是否仍然存在。
再次这些只是我的经验,如果您的真实用户实际上在生产应用程序中体验到这一点,那么它可能完全是其他东西。