2012-04-04 6 views
0

私はPayPalにユーザーをリダイレクトして支払いをしますが、代わりにこのコードを書いています(サイトにデータを送信するためのフォームが必要です)。PaypalのURLが正しく機能しない

($sandbox) ? $url = "https://www.sandbox.paypal.com/cgi-bin/webscr" : $url = "https://www.paypal.com/cgi-bin/webscr"; 
    ($sandbox) ? $button = "XXXXX" : $button = "YYYYY"; 

    $notify_url = urlencode($site_url . "index.php?act=member-pn&mid=" . $ld['member_id']); 
    $return_url = urlencode($site_url . "index.php?act=member-ps"); 
    $cancel_url = urlencode($site_url . "index.php?act=member-pc&mid=" . $ld['member_id']); 

    $url .= "/?notify_url=$notify_url&return=$return_url&cancel_return=$cancel_url&cmd=_s-xclick&hosted_button_id=$button"; 

    header("Location: $url"); 

なぜキャンセルURLだけが機能していますか?返品と通知は機能していないようです。

+0

これらはどこでテストしていますか?それはあなたのlocalhostでですか? – mahadeb

+0

いいえ、ライブサイト。 – slash197

+0

あなたはURLをエコーし​​てみましたか?値は正しいですか? –

答えて

0

だから私の質問への答えは簡単です:あなたが作業しているサイトに対してhtaccess認証を持っているかどうかを常に覚えておいてください。 PaypalのIPNは決してスクリプトにアクセスする機会がありません:)

そして、はい、POSTの代わりに単純なボタンのGETリクエストを行うことができます。

1

あなたはPOSTリクエストとして値を送信する必要があると思います。あなたはコードからGETリクエストをしているようです。

notify_urlとreturn_urlについては、これらの機能が既にPaypalアカウントで有効になっていると仮定しています。

可能な解決策は、jQuery Validate(たとえば)を使用してフォーム送信を取得してから、サーバーに初期データを送信してユーザーを登録し、完了したらpaypalにフォームを送信できることです。

+0

これらの機能は私のpaypalアカウントで無効になっています。 POSTリクエストが必要な場合、キャンセルURLはなぜ機能しますか? – slash197

+0

Think Gohnは正しいです、あなたはpaypalサイトを投稿していません。getは部分的な仕事かもしれませんが、最初にデータを投稿しようとします。 –

+0

私はpaypalにPOSTできません。最初に次にpaypalにリダイレクト – slash197

0

私たちは数日前に非常に類似したものを作りました。私たちはajaxとjqueryについて考えました.... 今は2つのフォームを使用していますが、これは最も簡単な方法です。 店頭でチェックアウトしているユーザーのklicks - >私たちのサーバーへの投稿 - > dbで保存 - > paypalで支払う(2形式) - > paypalにリダイレクトする - >支払う - >私たちのサーバーが確認を取得する - >私たちのサーバーは、お店に確認を送信する

このようにはどうでしょう?

+0

しかし、それは2つのステップのプロセスです – slash197

関連する問題