1

私は、authorize.net を介したチェックアウト システムを備えた codeigniter アプリケーションを持っています。私が使用する authorize.net ライブラリは、支払いを行うためにカールをプリフォームしますが、完了した後はリダイレクトできません。

headers already sent by (output started at /Users/phil/Sites/Medbridge/httpdocs/application/libraries/AuthorizeCimLib.php:1

それはログが言うことです。支払いのことをコメントアウトすると、うまくリダイレ​​クトされます。カールを理解していないため、何かを行っているのか、カールの設定を変更する必要があるのか​​ わかりません。
ありがとうございました

編集
これは私が使用しているライブラリへのリンクです。これは大きく、コード全体を再投稿したくありませんでし

ここにカール部分があり、これがヘッダーへの出力を行っているかどうかを誰かが確認できるかもしれません

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $this->_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLINFO_HEADER_OUT, FALSE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_xml);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $this->_response = curl_exec($ch);

ありがとうございました

4

2 に答える 2

1

これは、サーバーがブラウザに何かを出力した後、php を介してリダイレクトできないためです。

コメントで述べたように、コードのどこかに空白が含まれている可能性があります。?>練習とトラブルシューティングを減らすために、php ファイルの末尾に末尾を含める必要はありません。?>これは必須ではなく、コードの実行中にエコーが発生するスペースが後に続く場合があります。

ファイルの最後に がincludeある可能性があるコード内のファイルを ing していますか?

可能であれば、別の「解決策」はエコーすることです

<script type="text/javascript">
    top.location = '<?=$str_redirect_url?>';
</script>

編集:

Codeigniter を使用している場合は、ファイルと空白文字をチェックする必要がmodelありますhelperlibrary

于 2012-04-11T07:00:41.940 に答える
0

おそらく、AJAX を使用して支払い呼び出しを発行し、応答を取得して、Javascript を使用してリダイレクトできますか?

于 2012-04-11T05:52:20.590 に答える