2009-08-12 11 views
0

Webサービスとは無関係で、Webサービスを既存のアプリケーションに統合する必要があります。 Webサービスに渡される詳細は PHPのWebservices

    • ユニーク参照
    • 額はステータス
    • ステータス説明

    このWebサービスは、トランザクションのステータスにウェブサイトが更新されますされています。

    どのような方法が最適ですか?ここからどこに行くのですか?

  • +1

    これを実行する方法はたくさんあります。自分の質問に多少の情報を含めることもできます。特定のWebサービスでも、独自の特質を持つことができます。 –

    答えて

    1

    Webサービスにはさまざまな種類があり、それらに何かを統合するモードがありますが、今日の多くのサービスは同様の手順で統合されています。あなたは抽象的な形式で質問を提出して以来、私は抽象的な答えを提供します - 多分さらなる質問を引き起こすでしょう。

    例として支払いを使用します。

    1. ユーザーはマシン上で何かをする(Tシャツを注文する)。 アクションは、データベース、セッション、または何らかの種類のストレージ(または一連のアクション)を更新します。

    2. ユーザーの操作(1)の結果の1つが、システムを(PayPalなど)のWebサービスにプッシュするようにトリガーされます。 XMLの書式設定では、ネストされたパラメータを含む応答を送信します。あなたの店はTシャツの価格と数量を送信します。

    3. サービスは、XMLリクエスト(しばしば「APIキー」などを含む)を受け取り、それを処理します。 PayPalのケースでは、ユーザーがTシャツの注文を完了した後、注文情報とともに自分のウェブサイトにリダイレクトされます。 (同期)

    4. サービスは、必要に応じて処理(またはいくつか非同期アクションを実行)を完了した後、サーバーにXML要求を送信します。 PHPでリクエストを解析し、データを処理します。たとえば、リクエストには'order_status'のようなプロパティがあります。プロパティには'complete','pending', 'failed'が含まれます。これを反映するためにPHPを使用してデータベースを更新することができます。

    5. お客様のウェブサイトは、サービスによってデータベースに加えられた変更をユーザーに反映します。たとえば、「注文ステータス」または「最近の注文」ページに関する情報。

    多くの異なるWebサービス用に素晴らしいライブラリと多くの以前に作成されたPHPクラスがあります。 GitHubを検索してみることもできます。そして:UPS、PayPal、Google Checkout、Facebookなど多くのユーザーが、必要に応じて独自の実装を作成するためのサンプルとAPIドキュメントを用意しています。

    編集:PayPalの固有の情報 PayPalは(非同期)IPN応答を送信するとき、それはあなたが読んで、その仕様に応じて検証することができますPOSTデータ、です。

    私はIPN(tinker時間を避けるために)を処理するために見つけた最も簡単な方法は、Micah CarrickのPayPal classです。私は名前を嫌って待っていたスクリーンを磨きたがっていましたが、あなたはthis gistに私の変更を見ることができます。

    +0

    ありがとう。私が欲しいものに合っていると思われる領域は、あなたが説明した第4セクションです。セクション4で詳細を説明する必要があります。 ユーザーが支払いリンクをクリックして支払い処理担当者に引き渡した支払い処理担当者は、支払いを処理してから、自分のWebサービスに支払いステータスを送信します。 私のwebservceは、クエリ文字列またはxmlを使用して支払明細を受け取ることになりますか? xmlの場合、xmlの内容をどのように取得するのですか?ありがとう。 –

    +0

    PayPalに関する情報を追加しました。あなたが探していると思われる情報です。 XMLを解析する場合、PHPにはいくつかの選択肢があります。あなたは、それがうまくいくものを見つけるためにそれをGoogleにできるはずですが、PayPalは実際にはちょうどPOSTdataです。 – arbales

    0

    jQueryを使用する場合、安らかなajax主導のPHPのWebサービスは、ほとんど書くのが簡単です。あなたは次のようにサーバー上のコードを持っている:

    // index.php: 
    if (isset($_GET['transact'])) { 
        $ref = $_POST['ref']; 
        $amount = $_POST['amount']; 
        $status = $_POST['status']; 
        $description = $_POST['description']; 
        $result = transact($ref, $amount, $status, $description); 
    
        header('Content-Type: application/json'); 
        return json_encode(array(status => 'success', result => $result)); 
    } 
    

    し、クライアント側のWebアプリケーションは次のようになります。

    // webapp.js 
    .... 
    var data = { ref:4343, amount:'12.34', status:'pending', description:'deduction' }; 
    $.post('?transact', data, function(result) { 
        if (result.status == 'success') { 
         var thing = result.thing; //etc..