tp5.1アリペイの支払いインタフェースに接続する

5947 ワード

最初のステップはdomeをダウンロードします
開発者のアカウントを申請して、鍵、公開鍵など、いくつかの基礎的なものは多く述べられていません.公式には説明がありますが、こちらのチュートリアルは主に乾物です. dome , alipay, tp vendor , ,
ステップ2で、プロファイルの変更
プロファイルのapp_idアプリケーションid、merchant_private_keyユーザー秘密鍵、alipay_public_keyアリペイ公開鍵、非同期、同期アドレスの変更
第二歩、乾物
自分のコントローラで呼び出す:
 "2016092900619970",

           //    
           'merchant_private_key' => "MIIEogIBAAKCAQEA2cO618CgcTyBVCHj11aZ3h1Viw+Kq/yZILw7rG+dOaOI/eQYAn2S9iUj0GriutN6QlTvDkRqYITW+6VtvBwLqmm/HpZBc77aE++AeQAi3vDnUO8mardk3JG5RKSl3zYFeleFNtGHr3DsDcwH3ND/vXIfBq5CuvGIpusOf16Stvo2dd7Xz0/RXJbuPAWcbS3de4qGeaCQqW72CE5PWOpe8wgHIGo7t/9aEL9xO+Vtni+E09g4JPQsmtPp07nXHnEaKRbyJlhuXA0ehAMzRQ/dUfQf7RRtXhOZBmvbhzsMOmu7YSA8zlSYodRkSzCA990bDvw/6kQW3eZbZXW4KRmImQIDAQABAoIBAHJrcIoasXKuKvoM0I19+F0HpsHpiaBymfbkUKp6/u6hKcLVjXQJjSV+QEIrVzR5F70wqWcitY4/XkJdGrqDNfH1nDEzG/L4LdfZuPRbCPeBNtmEvvfFot5uRx11MZ6F4Pz2bY1vLM8XE0DwmpUAz8833muBNpjJflbOHRD5nTc8ayo5ZienvQYmVEOiaHVNW9hNXNQBFT0sjZFlJcqGNo6rz34nlKC9PMJhR8GzcW6LWAy4BvlZT3eYCDZSW2E0w2ErE9RCOZyjw7QGsTuREydTGeVUxobjpxy3aXh0NLv1q5gUi6behDUnLKasG/c48cRN+7cl+/+uExS4WI46BjECgYEA71qST14oNnvb7491pnuBydXeCbeKkRIBL2s9L7hmzJkWokrwwwE+og8ohqBdzYptQ86E7mVUPbfvSHSmBxH0vGerZzBpTLIslBnA4NU5p4WBfPF99h1KCtjKVRGmKf6yM7ex9LZrFXf3/gsy0CLU/XGBR3pbmLSnWcf4t8tfoUUCgYEA6OjJQV6myxcQqiGreW/EQmlSE/B0TPc8c4GEeupI0V2EH5VriKpeRw1m/nMnEzoi5Tqkv3mqeArXXnewKH2Lp3tit+QdGyyokLiN3CfAZH92uU/q3GvlwO/XMw/27uo8AVGKn4Zr9h11KxERRn834ZEFt3IPFUm53B49XJ8ZXUUCgYA12+COYXaVA/vyhQqJQsNqwmgrMZTJng6MOApVoZ3oLg6MyGYyyyXn25dX6+APrzV1C5SX/E8fcDM0z6LIdn7mokFMf/VB39nuHXlsXi6SBpWjosegSOjvVeb5i3Yjfv9kadJuaVnhQ9SW4rg1Y5Ef0pmvltXjn8sEhd3upaHILQKBgGzvvHo7yC3DewLoPqjM8vHRCxfSZsM8/GRWFt3ayPZMFCklnSdN8EyxYxPuTj96+KlY1YfNY0NEZtmDh7xYhEJwvoqeQlLcf3c5KvjnCuC2kZQ5YfN47/xe8burYub6XdiMCBd3KvXxb0UWdYsQo9V4HEFiMtXVJv5iknbI33c1AoGAQs3VmNPMCZGi0fd882X0X8O5Ca++J2n+6YyApZAPwDXzlC/W92Mxni1T/gr/1LTJw4IsuWo8E23QeJtReedrWfEal+4ocLd1bHizOdPqaRHmTZfKC9OLjRIQCtiT/WFyo88KGTbM6OFSS+HTV7fII1U3Bt9evFRCPA+jDtXI9as=",

           //      
           'notify_url' => "http://tp.test/api/index/notify",

           //    
           'return_url' => "http://tp.test/api/index/returnfy",

           //    
           'charset' => "UTF-8",

           //    
           'sign_type' => "RSA2",

           //     
           'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",

           //     ,    :https://openhome.alipay.com/platform/keyManage.htm   APPID       。
           'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndXlKv68inoOevZr2N70PIanm2A/7IkXVl7C/hnB8c5H+gLl/sIstZ8kfPSG3zuxuGgO66YVY5m4KrIMrzPqS/Aqi0Ypi4aL5ILI/7m2mwhvw6b95RSmvSFcHqEOJpgXLRXytw6w8UQGzZMKRQ2E1IP+iuFykTLjmWyjfShGs02aEk3zLA6hx7mkBZxQkVqMVzJDxBi9X7N73XW8wDgYVuk5hhpLeLH+IVU6k+AqCv48KZK//HF9f+oV1tIV56wU0TirZHpTOjaz13W67P+9uuq+Pn6CHE1StRDx3i0kRFTZXGZlwA23IrHehtluh1S970NvSnR2rUrb8lHUA9yUCwIDAQAB",
       );
       if ($_POST['WIDsubject']) {
           include_once VENDOR_PATH . '/alipay/config.php';
           include_once VENDOR_PATH . '/alipay/pagepay/service/AlipayTradeService.php';
           include_once VENDOR_PATH . '/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
           //     ,              ,  
           $out_trade_no = trim($_POST['WIDout_trade_no']);

           //    ,  
           $subject = trim($_POST['WIDsubject']);

           //    ,  
           $total_amount = trim($_POST['WIDtotal_amount']);

           //    ,  
           $body = trim($_POST['WIDbody']);
           //    
           $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
           $payRequestBuilder->setBody($body);
           $payRequestBuilder->setSubject($subject);
           $payRequestBuilder->setTotalAmount($total_amount);
           $payRequestBuilder->setOutTradeNo($out_trade_no);

           $aop = new \AlipayTradeService($config);

           /**
            * pagePay         
            * @param $builder     ,  buildmodel      。
            * @param $return_url       ,      
            * @param $notify_url       ,      
            * @return $response         
            */
           $response = $aop->pagePay($payRequestBuilder, $config['return_url'], $config['notify_url']);

           //    
//            var_dump($response);
       }
   }

   public function notify()
   {
       $post = input();
       if ($post['trade_status'] == "TRADE_SUCCESS") {
           Db::name('order')->where('out_trade_no',$post['out_trade_no'])->update(array('pay_status'=>'success'));
           //          
           echo "SUCCESS";
       }
       //          
//        $data = json_encode($post);
//
//        fopen("testfile.txt", $data);

   }
   /**
    *     
    * @return [type] [description]
    */
   public function 

returnfy()
   {
       $post = input();
       //      
       var_dump($post);
   }
}

説明:
  • 私は砂箱環境を使っています.正式な環境に変更するには、支付宝ゲートウェイをhttps://openapi.alipay.com/gateway.do
  • に変更する必要があります.
  • tpでは、同期、非同期のアドレスを / / / の形式
  • と書くことができる.
  • 私のコントローラアドレスはapi/Payaliで、呼び出し方法はindex方法で、パラメータがWIDout_trade_no注文番号、WIDsubject注文名称、WIDtotal_amount支払い金額、WIDbodyその他の情報が必要で、要求方式はpost
  • です.