I am try to create ticket with form and i am making ajax call by post the form value but the weired part is by passing all credentials it is asking to login. i have pasted code below for reference.
$("form").submit(function (event) {
//event.preventDefault();
var recaptcha = $("#g-recaptcha-response").val();
if (recaptcha === "") {
event.preventDefault();
document.getElementById("CaptchaMassage").innerHTML = "Please check the recaptcha";
}
else {
event.preventDefault();
document.getElementById("CaptchaMassage").innerHTML = "";
var vName = $("input[id*='fcName']").val();
var vEmail = $("input[id*='fcemailinput']").val();
var vMessage = $("textarea[id*='fcMessage']").val();
var vProduct = $("input[id*='fcproduct']").val();
var vLotNumber = $("input[id*='fclotcode']").val();
var vOrderNumber = $("input[id*='fcordernumber']").val();
$.session.set("vName",vName);
$.session.set("vEmail",vEmail);
$.session.set("vMessage",vMessage);
$.session.set("vProduct",vProduct);
$.session.set("vLotNumber",vLotNumber);
$.session.set("vOrderNumber",vOrderNumber);
var endpoint = 'https://test.zendesk.com/oauth/authorizations/new';
var url_params = '?' +
'response_type=token' + '&' +
'redirect_uri=https://test.test.com/company/contact-us.aspx' + '&' +
'client_id=my_contact_us_form' + '&' +
'scope=' + encodeURIComponent('read write');
window.location = endpoint + url_params;
//var location = endpoint + url_params;
//init(location)
$("form").submit();
}
});
window.addEventListener('load', init, false);
function init() {
//function init(winLocation) {
var url = window.location.href;
//var url = winLocation;
if (url.indexOf('https://test.test.com/company/contact-us.aspx#access_token=25e92651b3d77ada65406aab9c366603d8277a718d83e52578ddec26c84d756b&scope=read+write&token_type=bearer') !== -1) {
if (url.indexOf('access_token=') !== -1) {
var access_token = readUrlParam(url, 'access_token');
localStorage.setItem('zauth', access_token);
window.location.hash = "";
makeRequest(access_token);
}
}
}
function makeRequest(atoken) {
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState === 4) {
if (request.status === 200 || request.status === 201) {
alert("Done");
} else {
alert("error");
}
}
};
var vName = $.session.get("vName");
var vEmail = $.session.get("vEmail");
var vMessage =$.session.get("vMessage");
var vProduct = $.session.get("vProduct");
var vLotNumber = $.session.get("vLotNumber");
var vOrderNumber = $.session.get("vOrderNumber");
var body = {
"ticket":
{
"subject": vMessage,
"comment": { "body": vMessage + "\n\n------------------\nSubmitted from:"+window.location.href.split('?')[0] },
"requester": { "name": vName, "email": vEmail },
"custom_fields": [
{
"id": 360007228414, //product
"value": vProduct
},
{
"id": 360007152153, //lot code
"value": vLotNumber
},
{
"id": 360007160253, // order number
"value": vOrderNumber
}
]
}
};
var payload = JSON.stringify(body);
var url = 'https://test.zendesk.com/api/v2/tickets.js';
request.open('POST', url, true);
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
request.setRequestHeader("Authorization", "Bearer " + atoken);
request.send(payload);
}
function readUrlParam(url, param) {
param += '=';
if (url.indexOf(param) !== -1) {
var start = url.indexOf(param) + param.length;
var value = url.substr(start);
if (value.indexOf('&') !== -1) {
var end = value.indexOf('&');
value = value.substring(0, end);
}
return value;
} else {
return false;
}
}
</script>