PayPal .net mvc CORS error



我在此处关注PayPal Rest教程:https://code.tutsplus.com/articles/paypal-integration-part-part-part-part-2-part-2-paypal-rest-rest-api--cms-22917

我在我的控制器方法(下图(中有一个,我相信这是引起问题的重定向线,以前的行可以伸出去PayPal以获取ID毫无问题。payment.getAppRovalUrl((检索错误消息中列出的URL:

public ActionResult CreatePayment()
{
var userId = _userRepository.LoggedInUserId(); 
var cart = _cartRepository.GetCart(userId);
var payment = PayPalRepository.CreatePayment(GetBaseUrl(), 
"sale",cart);
return Redirect(payment.GetApprovalUrl());
}

此操作方法是从paypal按钮JavaScript调用的:

payment: function(resolve, reject) {
    // Set up the payment here, when the buyer clicks on the button
    var env = this.props.env;
    var client = this.props.client;
    var CREATE_PAYMENT_URL = 'http://localhost:3259/Payment/CreatePayment';
    return paypal.request.post(CREATE_PAYMENT_URL)
        .then(function (data) {
            console.log('data: ' + data);
            resolve(data.paymentID);
        })
        .catch(function (err) { reject(err); })

console.log语句永远不会执行,浏览器控制台显示此错误: XMLHTTPREQUEST无法加载https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&take-ptoke-ptoken=c-7EL205553GB692634H。在请求的资源上没有"访问控制"标头。

我的控制器标记为AllowCrosssitejson属性(在Stackoverflow上找到,将通过参考作者进行更新(,如下:

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var ctx = filterContext.RequestContext.HttpContext;
            var origin = ctx.Request.Headers["Origin"];
            var allowOrigin = !string.IsNullOrWhiteSpace(origin) ? origin : "*";
            ctx.Response.AddHeader("Access-Control-Allow-Origin", allowOrigin);
            ctx.Response.AddHeader("Access-Control-Allow-Headers", "*");
            ctx.Response.AddHeader("Access-Control-Allow-Credentials", "true");
            base.OnActionExecuting(filterContext);
        }

我在做什么错误或不在做,以通过此错误?

解决方案是服务器端代码只能返回付款。ID为JSON,而不是授权URL。

最新更新