jQuery の変数スコープを完全には把握していないと思います。変数「final_shasign」が AJAX 内では正常に出力されるのに、AJAX の外部で宣言されているにもかかわらず、AJAX の外部では定義されていない理由を理解するための助けが必要です。
var final_shasign; // initial declaration outside of ajax block below
$.ajax({
type: "POST",
url: "sha.php",
data: "amount="+amount+"&cn="+cn+"¤cy="+currency+"&language="+language+"&orderid="+orderid+"&pspid="+pspid,
success: function(response_data, final_shasign){
var parsed_data = $.parseJSON(response_data);
final_shasign = parsed_data.shasign;
console.log ("inside nested ajax: " + final_shasign); //comes out fine
}
});
console.log ("outside of nested ajax: " + final_shasign); //comes out as undefined!