1

「成功」の場合data、PayPal に提出する必要があります。$.post('https://www.paypal.com/cgi-bin/webscr', data);それがフォームアクションであるかのように送信する必要があり、フォームの値を含む PayPal ページに移動する必要があるため、それが間違っていることはわかっています。すべてのデータは保存され、返される JSON データに適切にフォーマットされます。で確認しましたalert(data.cmd)。ここから HTML POST アクションをエミュレートする方法がわかりません。

function process(plan_id) {
        var data = {'plan_id' : plan_id};
        $.ajax({
                type: "POST",
                url: "process_paypal.php",
                data: data,
                dataType: "json",
                success: function (data) { 
                alert(data.cmd);
                    $.post('https://www.paypal.com/cgi-bin/webscr', data);
            },
             error: function(jqXHR, textStatus, errorThrown) { 
                console.log(arguments); 
                alert(jqXHR + '-' + textStatus + '-' + errorThrown);
                return false;        
            }
        });
    }
    </script>
4

2 に答える 2

1

次の方法で、json オブジェクトを key1=value1&key2=value2.. のようなパラメーター文字列に変換できます。

var result = decodeURIComponent($.param(data));

次に、この結果をペイパルに渡すことができます

$.ajax({
    type:'POST',
    ...
    data: result,
    ...
});
于 2012-10-09T17:31:13.347 に答える
1

次のように、データをPayPal に送信する前に、$.serialize()を使用してデータをシリアル化する必要があります。

var data = {'plan_id' : plan_id};
$.ajax({
    ...
    data: $(data).serialize(),
    ...
});

データをシリアル化することで、オブジェクトから、PayPal サービスが読み取ることができるエンコードされた文字列に変換します。

これが役立つことを願っています!

于 2012-10-09T17:33:05.547 に答える