1

私のウェブサイトはjoomla2.5.8で構築されています。Webサイトは、支払いの処理に支払いゲートウェイを使用しています。

ご存知のように、joomlaはURLに対してこの構造を持っています(SEFなし):

index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway

ここで、支払いゲートウェイプロバイダーから、トランザクションの値を渡すためのコールバックURLを送信し、このURL値に基づいてトランザクション情報でMySQLデータベーステーブルを更新するように依頼されました。

問題は、ペイメントゲートウェイプロバイダーがコールバックURLで次の値を使用することです。

?Response=1&status=10&code=123456-123456&token=f0021bfa-7ae4-48af-b4a2-d08d7a647b5e&lang=en&ignore=1

そして、私のコンポーネントがコールバックURLとして使用するリンクは次のようになります。

index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway

したがって、支払いプロバイダーは、「?」が含まれているため、システムにこのコールバックURLを設定することを拒否しました。初期化。そして、彼らはこの「?」を使わなければなりません。コールバックURL内のトランザクション値を渡します。

したがって、私が提供したコールバックを受け入れる場合、コールバックURLは次のようになります。

index.php?option=com_componentname&controller=order&task=notify&gateway=paymentgateway?Response=1&status=10&code=123456-123456&token=f0021bfa-7ae4-48af-b4a2-d08d7a647b5e&lang=en&ignore=1

上記でお気づきのように、コールバックURLには2つの「?」が含まれます。疑問符。

これまでに行ったこと:JoomlaWebサイトにSEF以外のURLをSEFできるコンポーネントがインストールされています。したがって、このリンク(index.php?option = com_componentname&controller = order&task = notify&gateway =paymentgateway)を(payment-status)にSEFし、支払いプロバイダーに送り返します。ただし、コールバックURLで渡された値は、データベーステーブルを更新しません。

したがって、支払いプロセス中はすべて問題ありません。そして、データベースを更新するためにパラメーターの値を取得するポイントに到達すると、更新されません。この問題を解決するにはどうすればよいですか?

BR、

4

1 に答える 1

0

コールバックページのメニュー項目を作成できるように、コンポーネントにメニュー項目を追加する必要があります。次に、組み込みのJoomlaSEFURLをコールバックURLとして使用できます。これはメニュー項目であるため、支払い処理業者から返送される追加の値とともに、必要な正しいパラメーターを渡します。

コンポーネントのメニュー項目に慣れていない場合は、ここを参照してください-メニュー項目タイプでjoomlaコンポーネントを表示します

于 2013-03-16T23:35:04.657 に答える