PHP SDKでアリペイアプリで支払い(注文とチェック)

5965 ワード

一、以下のように支付宝アプリにPHP SDK DEMOアドレスを支払う.
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.jxZiS8&treeId=54&articleId=106370&docType=1#s4
二、以下はアリペイアプリの支
  • 説明:ここではCIフレームワークを使用し、正式にオンラインになるにはパラメータ$aop->appId、$aop->rsaPrivateKey、$aop->alipayrsaPublicKeyを正式に変更する必要があります.
  • サンプルコードのAPP IDである$aop->appIdは、砂箱アプリケーションから取得される.
  • 公式サイトで提供されている公開鍵生成ツールを使用して、1対のアプリケーション秘密鍵($aop->rsaPrivateKey)と1つのアプリケーション公開鍵を一度に生成します.アプリケーション公開鍵を砂箱環境にアップロード(オンラインで正式な環境にアップロード)して、アリペイ公開鍵($aop->alipayrsaPublickey)を取得します.
  • 公式サイトdemoでは、アリペイが返す前支払い情報をhtmlspecialchars()で処理する.本人がhtmlspecialcharsで処理した後、アンドロイドフロントエンドは支払いインタフェースを呼び出すことができませんでした.したがって、例ではhtmlspecialchars()は使用されません.
  • class AlipayController extends CI_Controller
    {
        function pay()
        {
            require_once('/www/my/app/third_party/alipay/aop/AopClient.php');
            require_once('/www/my/app/third_party/alipay/aop/request/AlipayTradeAppPayRequest.php');
            $aop = new \AopClient();
    
            //**         
            $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
            //    app id    
            $aop->appId = "2016080300158242";
            $aop->rsaPrivateKey = '             ';
            $aop->format = "json";
            $aop->charset = "UTF-8";
            $aop->signType = "RSA";
            $aop->alipayrsaPublicKey = '                  ';
            $bizcontent = json_encode([
                'body'=>'    ',
                'subject'=>'  ',
                'out_trade_no'=>'123456',//            
                'total_amount'=> '9.88',//      
                'product_code'=>'QUICK_MSECURITY_PAY'
            ]);
            //**         
            //     API   request ,          ,        :alipay.trade.app.pay
            $request = new \AlipayTradeAppPayRequest();
            //     
            $request->setNotifyUrl("https://demo.com/pay/alinotify");
            $request->setBizContent($bizcontent);
            //            ,    sdkExecute
            $response = $aop->sdkExecute($request);
            echo $response;
    }

    三、チェック
  • アリペイ非同期チェックアウトドキュメント:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.fFjclt&treeId=204&articleId=105301&docType=1#s6
  • 上段コードに$request->setNotifyUrl()が記入したコールバックURLは、次の方法を指します.
  • class AlipayNotifyController extends CI_Controller
    {
        function notify()
        {
            require_once('/www/my/app/third_party/alipay/aop/AopClient.php');
            $aop = new AopClient;
            $aop->alipayrsaPublicKey = '        ,     ';
            //                   
            $flag = $aop->rsaCheckV1($_POST, NULL, "RSA");
            //            ,             。
            /**
            ①           trade_status、out_trade_no、total_amount、seller_id
            ②     
            **/
            //  success,     。          。    success,              。
            echo 'success';
        }
    }