Alipayインターフェースの開発と統合支払環境のまとめ


宝を支払うインターフェースの統合気死については簡単ですが、現在は3つのタイプがあります。即時に帳簿、双機能、担保取引に行きます。一度の担保取引だけが必要です。他の例えば、即時に帳簿に積み立てば簡単です。担保取引の状態はいくつかあります。即時に帳簿に着いて1種だけあって、すでにお金を支払ったかどうかです!最大で払い戻し機能があります。ほとんど使われていません。
    前にプロジェクトをしました。資本配分プラットフォームには前払いの機能があります。宝を支払うダブル機能で入金します。実は二つの支払方法を提供して、即時に帳簿と担保取引をします。一般的にバイヤーは慎重に担保を選択します。
    以下で具体的な集積過程を説明します。第一に、対応する集積インターフェースパッケージをダウンロードします。例えば、即時に帳簿に着いたらすぐに帳簿にダウンロードして、ダウンロードして保証します。ケースの中で私がダウンロードしたダブル機能インターフェースファイルは、utf 8-phpインターフェースです。
    ダウンロードしたファイルは全部大同小異です。即時に帳簿と担保の書類にも違いがありません。一応保証されたAlipayインターフェースをセットすれば、即時に帳簿に配置することができます。
    私達が修正したいファイルは以下の通りです。alipay.co nfig.php[プロファイルを設定するのは、設定インターフェース開発者のIDとkeyを修正するためだけです。]
    alipaypi.php[マスタファイルは、送信する必要があるpostデータをこのファイルに渡してから、支払いページにジャンプします。]
    index.php[demoデモンストレーションページは、修正しなくてもいいですが、その中で伝達するパラメータ名陳は分かります。]
    notify_url.phpはデータページに戻ります。ここでは取引の状態に戻ります。さらに状態を整えて、データベースの注文情報を変更できます。このファイルはpost方式で受け取ります。
    return_url.phpはデータページに戻ります。ここでは取引の状態に戻ります。さらに状態を整えて、データベースの注文情報を変更できます。このファイルはGET方式を通じています。
    具体的なプロセス:
    ステップ1で、設定情報を変更します。

   $alipay_config['partner']       = 'xxx8511073xxxxxxxx';
   // , 32
   $alipay_config['key']           ='xxxxxxxxnow07oajbflskxxxxxxxxxx';
 
     第二:postデータをつづり合わせて、要求パラメータだけを修正する必要があります。

 /************************** **************************/
         //
         $payment_type = "1";
         // ,
         //
         $notify_url = "http:// /alipay/notify_url.php";
         // http:// , ?id=123
         //
         $return_url = "http:// /alipay/return_url.php";
         // http:// , ?id=123 , http://localhost/
         //
         $seller_email = $_POST['WIDseller_email'];//demo[index.php]
         //
         //
         $out_trade_no = $_POST['WIDout_trade_no'];//
         // ,
         //
         $subject = $_POST['WIDsubject'];//
         //
         //
         $price = $_POST['WIDprice'];// ,
         //
         //
         $quantity = "1";
         // , 1, ,
         //
         $logistics_fee = "0.00";
         // ,
         //
         $logistics_type = "EXPRESS";
         // , :EXPRESS( )、POST( )、EMS(EMS)
         //
         $logistics_payment = "SELLER_PAY";
         // , :SELLER_PAY( )、BUYER_PAY( )
         //
         $body = $_POST['WIDbody'];
         //
         $show_url = $_POST['WIDshow_url'];
         // http:// , :http://www.ya-jing.cn
         //
         $receive_name = ' ';
         // :
         //
         $receive_address = $_POST['WIDreceive_address'];
         // :XX XXX XXX XXX XXX XXX XXX XXX
         //
         $receive_zip = $_POST['WIDreceive_zip'];
         // :123456
         //
         $receive_phone = $_POST['WIDreceive_phone'];
         // :0571-88158090
         //
         $receive_mobile = $_POST['WIDreceive_mobile'];
         // :13312341234
 
     第三に、データ構造が完了したら、ページ上でお支払いできます。正確にお支払いページを開くことができるかどうかをテストします。もし開けられたら、この時に支払いができますが、バイヤーの支払いの状態はまだ分かりません。例えば支払いが成功したかどうか、売り手はすでに出荷したかどうかなどです。それでは、戻り状態のビジネスロジック処理を開始します。
return_を開くurl.phpファイルは、提示によって修正し、原因に対する処理をします。

 //―― ( )――
     // ,
     // $out_trade_no = $_GET['out_trade_no'];
     //     $trade_no = $_GET['trade_no'];
     //
     $trade_status = $_GET['trade_status'];
     if($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {//
     //
         if(!$order['status']){//
             db_update("stx_recharge",array("status"=>1),array("oid"=>$_GET
 ['out_trade_no']));// 。
             //
             $zd = db_line("stx_terminal",array("id"=>$order['ztid']));
             db_update("stx_terminal",array("money"=>$zd['money']+$order
 ['money']),array("id"=>$order['ztid']));// 。
         }
     }
     else if($_GET['trade_status'] == 'TRADE_FINISHED') {
         //
             // , (out_trade_no)
  ,
             // ,
     }
     else {
       echo "trade_status=".$_GET['trade_status'];
     }
     echo " <br />";
     echo "trade_no=".$trade_no;
     notify_url.phpも、状態に応じて対応コードを作成します。notify_url.phpファイルの状態は多めにしてください。

 //―― ( )――
     // ,
     //
     $out_trade_no = $_POST['out_trade_no'];
     //
     $trade_no = $_POST['trade_no'];
     //
     $trade_status = $_POST['trade_status'];
     if($_POST['trade_status'] == 'WAIT_BUYER_PAY') {
     // ,
         //
             // , (out_trade_no) ,
             // ,
         echo "success";    //
         // ,
         //logResult(" , ");
     }
     else if($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {
     // ,
         if(!$order['status']){
             db_update("stx_recharge",array("status"=>1),array("oid"=>$_POST['out_trade_no']));
             //
             $zd = db_line("stx_terminal",array("id"=>$order['ztid']));
             db_update("stx_terminal",array("money"=>$zd['money']+$order['money']),array("id"=>$order['ztid']));
         }
         echo "success";    //
         // ,
         //logResult(" , ");
     }
     else if($_POST['trade_status'] =='WAIT_BUYER_CONFIRM_GOODS') {
     // ,
         if(!$order['status']){
             db_update("stx_recharge",array("status"=>1),array("oid"=>$_POST['out_trade_no']));
             //
             $zd = db_line("stx_terminal",array("id"=>$order['ztid']));
             db_update("stx_terminal",array("money"=>$zd['money']+$order['money']),array("id"=>$order['ztid']));
         }
         echo "success";    //
         // ,
         //logResult(" , ");
     }
     else if($_POST['trade_status'] == 'TRADE_FINISHED') {
     // ,
         //
             // , (out_trade_no) ,
             // ,
         echo "success";    //
         // ,
         //logResult(" , ");
     }
私は基本的に後続の出荷処理を使っていませんので、この状態で処理していません。もしあなたのウェブサイトがショッピングサイトの秒であれば、対応する処理をしなければなりません。例えば、更新した状態の値はすでに出荷したか、未払い、確認したかなどです。取引の流れが見えやすいです。また、すでにお支払いした注文書の中で、アリペイの注文IDが発生します。同時に自分の注文書に記録することができます。
以上述べましたが、この文章はAlipayインターフェースの全部の内容についてです。皆様のAlipayインターフェースの支払いを熟知している二次開発に役に立ちます。