gpt4 book ai didi

javascript - 使用 ajax 实现 cybersource 静默订单发布

转载 作者:行者123 更新时间:2023-11-29 14:42:30 25 4
gpt4 key购买 nike

我在 magento 一页结帐中使用 cybersource 静默订单发布。我想将 ajax 发布到“https://testsecureacceptance.cybersource.com/silent/pay/”。但它给了我以下错误:-“XMLHttpRequest 无法加载 https://testsecureacceptance.cybersource.com/silent/pay/。请求的资源上不存在“Access-Control-Allow-Origin” header 。因此不允许访问 Origin。响应的 HTTP 状态代码为 403”

我想要特定于 cybersource 的答案。让我知道除了 ajax 之外是否还有其他选择

请在下面找到我的代码:-

var url = jQuery("#post_url").val();
var access_key=jQuery("#access_key").val();
var profile_id=jQuery("#profile_id").val();
var signed_field_names=jQuery("#signed_field_names").val();
var unsigned_field_names=jQuery("#unsigned_field_names").val();
var bill_to_forename=jQuery("#bill_to_forename").val();
var bill_to_surname=jQuery("#bill_to_surname").val();
var bill_to_email=jQuery("#bill_to_email").val();
var bill_to_phone=jQuery("#bill_to_phone").val();
var bill_to_address_line1=jQuery("#bill_to_address_line1").val();
var bill_to_address_city=jQuery("#bill_to_address_city").val();
var bill_to_address_state=jQuery("#bill_to_address_state").val();
var bill_to_address_country=jQuery("#bill_to_address_country").val();
var bill_to_address_postal_code=jQuery("#bill_to_address_postal_code").val();
var signed_date_time=jQuery("#signed_date_time").val();
var locale=jQuery("#locale").val();
var card_type=jQuery("#cybersource_cc_type").val();
var card_number=jQuery("#cybersource_cc_number").val();
var card_expiry_date=jQuery("#cybersource_expiration").val();
var params ='access_key='+access_key+ '&profile_id='+profile_id+ '&signed_field_names='+signed_field_names+ '&bill_to_forename='+bill_to_forename+ '&bill_to_surname='+bill_to_surname+ '&bill_to_email='+bill_to_email+'&bill_to_phone='+bill_to_phone+'&bill_to_address_line1='+bill_to_address_line1+'&bill_to_address_city='+bill_to_address_city+'&bill_to_address_state='+bill_to_address_state+'&bill_to_address_country='+bill_to_address_country+'&bill_to_address_postal_code='+bill_to_address_postal_code+'&signed_date_time='+signed_date_time+'&locale='+locale+'&card_type='+card_type+'&card_number='+card_number+'&card_expiry_date='+card_expiry_date;
//alert(url);
var http= new XMLHttpRequest();
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send(params);
//Send the proper header information along with the request

http.onreadystatechange = function() {//IT NEVER COMES BACK TO THIS SECTION
if(http.readyState == 4) {
alert(http.responseText);
console.log("I came back");
}
}

最佳答案

我认为 Cyber​​Source 端点不允许 AJAX 调用。鉴于不支持 AJAX 调用,Cyber​​Source 端点未配置 CORS,因此您在进行 AJAX 调用时会看到错误。

根据documentation for Silent Order POST应提交表单并重定向用户。处理完付款后,Cyber​​Source 会将用户重定向到相应的页面。这与用于 Cyber​​Source Secure Acceptance Web/Mobile 的流程非常相似,并且与 Adyen、Braintree 或 Stripe 使用的流程完全不同(它们确实进行 AJAX 调用,其响应应由您的服务器)。

关于javascript - 使用 ajax 实现 cybersource 静默订单发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36885924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com