如何在ajax调用php soap

时间:2017-03-16 11:23:03

标签: php jquery ajax api soap

function clickandpledgeTransaction() {
        var $form = $('.wpjb-payment-form');
        var data = {
                action: "",
                engine: "clickandpledge_payment",
                id: WPJB_PAYMENT_ID,
                clickandpledge_selectedPaymentMethod:$("input[name=cnp_payment_method_selection]:checked").val(),

                clickandpledge_AccountID:$('#clickandpledge_AccountID').val(),
                clickandpledge_AccountGuid:$('#clickandpledge_AccountGuid').val(),
                clickandpledge_OrderMode:$('#clickandpledge_OrderMode').val(),

                clickandpledge_nameOnCard:$('#clickandpledge_nameOnCard').val(),
                clickandpledge_cardNumber:$('#clickandpledge_cardNumber').val(),
                clickandpledge_cvc:$('#clickandpledge_cvc').val(),

                clickandpledge_echeck_RoutingNumber:$('#clickandpledge_echeck_RoutingNumber').val(),
                clickandpledge_echeck_CheckNumber:$('#clickandpledge_echeck_CheckNumber').val(),                
                clickandpledge_echeck_AccountNumber:$('#clickandpledge_echeck_AccountNumber').val(),                
                clickandpledge_echeck_AccountType:$('#clickandpledge_echeck_AccountType').val(),
                clickandpledge_echeck_CheckType:$('#clickandpledge_echeck_CheckType').val(),
                clickandpledge_echeck_NameOnAccount:$('#clickandpledge_echeck_NameOnAccount').val(),
                clickandpledge_echeck_IdType:$('#clickandpledge_echeck_IdType').val(),
                clickandpledge_reference_number:$('#clickandpledge_reference_number').val(),

                clickandpledge_recurring_type:$('#recurring_select').val(),
                clickandpledge_periods:$('#clickandpledge_periods').val(),
                clickandpledge_nooftimes:$('#clickandpledge_nooftimes').val(),

                clickandpledge_echeck_periods:$('#clickandpledge_echeck_periods').val(),
                clickandpledge_echeck_nooftimes:$('#clickandpledge_nooftimes').val(),
                clickandpledge_eCheck_recurring_type:$('#eCheck_recurring_select').val(),
            };
        var request = $.ajax({
                url: ajaxurl,
                cache: false,
                type: "POST",
                data: data,
                success: function(response) {
                var result = $("#wpjb-checkout-success");

                result.find(".wpjb-clickandpledge-pending").hide();
                //alert(WPJB_PAYMENT_ID);
                if(response.external_id) {
                    result.find(".wpjb-flash-info").removeClass("wpjb-none");
                    result.find(".wpjb-flash-info .wpjb-flash-body").html(response.message);
                } else {
                    result.find(".wpjb-flash-error").removeClass("wpjb-none");
                    result.find(".wpjb-flash-error .wpjb-flash-body").html(response.message);
                }

                }
            });

        //console.log(request);
          request.done(function(msg) {
          var result = jQuery.parseJSON(msg);
        if(result == 0) {
                $(".wpjb-place-order-wrap .wpjb-place-order").hide();
                $("#wpjb-checkout-gateway").hide();
                $(".wpjb-fieldset-default").hide();
                $(".wpjb-place-order-wrap .wpjb-icon-spinner").css("visibility", "hidden")  
            $form.find(".payment-errors").removeClass("wpjb-flash-info");
            clickandpledgeResponse(msg);
         } else {   
                $(".wpjb-place-order-wrap .wpjb-place-order").hide();
                $("#wpjb-checkout-gateway").hide();
                $(".wpjb-fieldset-default").hide();
                $(".wpjb-place-order-wrap .wpjb-icon-spinner").css("visibility", "hidden")       
            $form.find(".payment-errors").removeClass("wpjb-flash-info").addClass("wpjb-flash-error").text(result.error);           
         }        
         });        
        request.fail(function( jqXHR, textStatus ) {
          alert( "Request failed: " + textStatus );
        });
        return '2015';
    }
    function clickandpledgeResponse(msg) {
        $form = $('.wpjb-payment-form');
        var resultjson = jQuery.parseJSON(msg);
        //console.log(jQuery.parseJSON(msg));
         var data = {
                action: "wpjb_payment_accept",
                engine: "clickandpledge_payment",
                id: WPJB_PAYMENT_ID,
                token: resultjson.TransactionNumber
            };
            //console.log(data);
            //console.log(resultjson);
         var request = $.ajax({
                url: ajaxurl,
                cache: false,
                type: "POST",
                data: data
            });
        request.done(function( msg ) {
            $form.find('.payment-errors').removeClass("wpjb-flash-error").addClass("wpjb-flash-info").text('Payment done successfully');
            $form.find('div.htmlholder').hide();
        });
    }

以上脚本用于API响应消息,其中我无法获取API响应数组,其结果为0(成功)并重定向到成功页面,即使错误输入也会成功页面...我是如果付款失败,则无法获取失败页面。

0 个答案:

没有答案