1

そう、

私はレンタカー会社を経営しており、自分のサービスをサード パーティの Web サイトに統合したいと考えています。サード パーティの Web サイトで直接レンタカーを借りることができます。サービスをサードパーティの Web サイトに効率的に統合するにはどうすればよいですか? 私は、iframe が最善の方法またはある種の JavaScript 呼び出しである可能性があると考えています...しかし、サードパーティのサイトがコーディングをできるだけ少なくする必要があるように、サービスを統合するための最良の方法が必要です。

レンタカーを借りたい場合は、サード パーティの Web サイトのボックスにチェックを入れてもらいたいと考えています。その後、顧客に支払いの詳細を尋ねるフォームが表示され、その情報がサイトに送信され、サイトがその情報を処理して確認します。支払い。

つまり、基本的に私が想定していたのは、

  1. ユーザーがサードパーティのサイトでチェックボックスをクリックする
  2. サードパーティのサイトは、個人に関する情報を自分のサイトに送信します
  3. その情報を使用して、価格の詳細が記載された支払いボックスを返送します
  4. 個人がサードパーティのサイトで支払い情報を送信する
  5. 私のサイトは支払い情報を取得し、情報を処理します
  6. 私のサイトは、サードパーティのサイトにステータス応答を返します。

問題は、顧客がリピーターの場合、サードパーティのサイトから顧客の識別情報を送信してもらい、リピーターであることを識別できるようにすることです。支払いボックスのカード詳細。

4

4 に答える 4

1

セキュリティを実装して、ハッカーが誤った命令でデータベースを停止できないようにする場合は、投稿されたデータをハッシュに暗号化するための共有秘密鍵を使用し、それを自分の側で比較します。

例えば

$data = "color=blue|type=mazda|days=3|clientID=john@doe.com|etc=somedata";
$secretkey = "213098snxlkds_ljlsk3545";
$hash = hash('sha256',$data.$secretkey);

echo '<form target="someiframe" target="http://www.domain.com/bla/die/bla">
<input type="hidden" value="'.$data.'" name="data">
<input type="hidden" value="'.$hash.'" name="hash">
<input type="submit" value="Order the car Now!">';

次に、データを受け取る側で、このコードを使用します

$secretkey = "213098snxlkds_ljlsk3545";
if(hash('sha256',$_POST['data'].$secretkey) === $_POST['hash'])
    {
    $process = explode('|',$_POST['data']);
    foreach($process as $piece)
        {
        $vars = explode('=',$piece);
        $Data[$vars[0]] = $vars[1];
        }
    }

このようにして、あなたとあなたの小売業者だけがハッシュを持っている場合、小売業者が合法であり、あなたを行き詰まらせようとしている安っぽいものではないことを常に確認できます.

于 2012-08-10T13:56:01.230 に答える
1

このような場合、プライマリ製品と同じサービスでホストされる製品のホワイト ラベル バージョンを構築する方がはるかに手頃な価格であり、場合によってはより効率的です。このように、他の人の名前を平手打ちし、どこかであなたの会社によって供給されていると言うことを除いて、すべての機能は本質的に同じです.

私がこれを提案する主な理由の 1 つは、サイト間トランザクションでは、悪意のある手段によってつまずく可能性のある多くの可動部分が残ることです。

ペイパルを例にとると、ペイパルで支払うとどうなりますか? サード パーティのサイトでペイパル ボタンをクリックすると、ペイパル サイト自体にリダイレクトされます。同様のことができます。サードパーティに、他のサイトと同じようにフォームを送信するように指示します。投稿されたデータは、自分の側ですべて確認できるようにしたいので、ドアをもう少し閉じたままにします。誰かが価格や何かを変更するのを防ぎます。とにかく、投稿されたデータを取得して、フィルターを通過させ、サードパーティに許可したものと比較し、すべてを自分の側で処理します。次に、すべてが完了したら、向きを変えて、そこのサイトとサンキュー ページにリダイレクトします。

考えさせられるだけの食べ物

于 2012-08-10T04:32:07.587 に答える
0

これにアプローチする方法はたくさんありますが、最も簡単なのは、サードパーティのインテグレーターがWebサイトで使用できる単純なJavaScriptAPIを使用することだと思います。JavaScriptは、チェックボックス(たとえば、に接続されているdivform、インテグレーターが指定する)を設定し、ユーザーがチェックボックスをオンにしたときにサイトを指すポップアップを開くように設定できます。その後、`ポップアップ内からトランザクションを処理できます。

これは、ユーザーがPaypalボタンを自分のサイトに投げ、ボタンをクリックすると、Paypalのサイトを直接指す新しいウィンドウを開くという基本的なPaypal統合の仕組みにかなり匹敵します(原則として、Paypalはできないため)サードパーティのWebサイトから直接支払いまたはID情報を収集/受け入れます)、トランザクションを説明するいくつかのパラメーター(支払い金額、受取人、アイテムの詳細など)を渡します。

したがって、たとえば、サードパーティは最初に次のようにJavaScriptファイルを含めることでサービスと統合する場合があります。

<script type="text/javascript" src="http://carmonkey.com/api/v1/MonkeyCar.js" />

...そして、APIをサイトの目的の部分に接続するための定型コードを追加する場合があります。

<script type="text/javascript">
    var options = {"container": "#someDivId", "userFirstName": "John", 
                   "userLastName": "Smith", "rentalDate":"8/8/12", "duration":"7"};
    MonkeyCar.drive(options);
</script>

次に、スクリプトはこれらのオプションを取得し、それらを使用してチェックボックスをターゲットコンテナ要素に追加し、ユーザーがクリックするとポップアップウィンドウがWebサイトの適切なURLに開くようにチェックボックスを構成する必要があります。したがって、次のようなものを追加できます。

<input type="checkbox" name="_monkeyCar" value="true" 
       onchange="if (this.checked) {MonkeyCar.open('http://carmonkey.com/reserve?fname=John&lname=smith&...');}" />  
Book a Rental Car

その後、ポップアップが標準のWebサイトで通常のブラウザセッションを実行しているだけなので、ユーザーは通常どおりレンタカーの予約を完了することができます。

ファンシーになりたい場合は、フィードバックループを追加して、サードパーティのページで実行されているJavaScript APIがトランザクションのステータスに関する更新を取得し、トランザクションが完了/キャンセルされたことを検出して、ホスティングページを更新できるようにすることもできます。状態。

于 2012-08-10T04:44:10.413 に答える
0

サービスをサードパーティのサイトに置くということは、それらのサイトがアプリ/サイトと通信する必要があることを意味します。その上、ユーザーがサードパーティのサイトでも支払いできるようにするため、機密データをやり取りすることになります。そのため、最初に SSL を取得/統合することをお勧めします。

それができたら、独自の API をセットアップする必要があります。巨大なタスクのように聞こえるかもしれませんが、多くのデータと検証 (大量のエラー コードなどを返す) を必要としない場合は、実際にはそうではありません。

簡単な例:

人々がログイン/登録できるWebサイトがあるとしましょう。しかし、ユーザーがサードパーティのサイトで自分のサイトに登録できるようにしたい (ユーザーに自分のサイトから商品を購入してもらいたいなど)。

ここで行うことは次のとおりです。

サード パーティのサイトが呼び出すすべての要求をリッスンする基本的なスクリプトを作成します。これを次のように呼びますapi.php

//so we listen for POST params to be sent. These params will have users details stored in them

//so first check if all required params were sent:
if ( !isset($_POST['firstName']) || !isset($_POST['lastName']) || !isset($_POST['email']) )
{

exit();//because some/all of the required data is missing, we're going to stop right here xD

}//end of required data missing

//so if we get to this point, we know that the correct params have arrived

//so now you can do your registration stuff

//validate data (check if email is correct, if its been used before, ect ect)

//throw the data in the DB

//and if you need to, return some JSON status code
echo json_encode(array('status'=>'OK'));

その通り、API があります。非常に基本的ですが、それでも API です。したがって、サードパーティのサイトに情報を投稿するように指示するだけで"https://yousite.com/api.php"、ステータス コードが返され、登録が完了します。

あまり良い例ではないことは承知していますが、要点を理解していただけたことを願っています。

実際、ほとんどの Web サイトはとにかくこれを行います。サードパーティのサイトを使用しなくても。ユーザーが Web サイトに登録すると、ユーザーのデータが特定のページに投稿されます。したがって、元のサインアップ/購入/ログインページにデータを POST するだけでよいと思います..

于 2012-08-10T04:31:38.787 に答える