<u id="rnvt2"><dl id="rnvt2"></dl></u>

            1. <mark id="rnvt2"></mark>
            <source id="rnvt2"></source><u id="rnvt2"><sub id="rnvt2"></sub></u>

            1. <u id="rnvt2"><small id="rnvt2"></small></u>

            2. <u id="rnvt2"></u>
            3. 幫助與文檔
              熱搜關鍵詞:直播系統短視頻源碼一對一
              PHP直播源碼支付回調的使用
              發布來源:云豹科技    發布人:云豹科技    Date:2022-01-10 10:06:25

              PHP直播源碼在支付充值方面,對支付寶的依賴還蠻大的,伴隨支付寶支付的使用,在PHP直播源碼中加入支付寶支付和回調變得越來越平常,下面就給各位分析一下,如何實現PHP直播源碼支付回調的使用。

              一、支付寶的接入及配置

              1、登錄支付寶開放平臺(https://open.alipay.com/platform/home.htm),進入開放平臺,點擊右上角,密鑰管理--->mapi網關產品密鑰--->RSA(SHA1)秘鑰設置;

              【注意:如果之前已經設置過的話,請確認是否有APP項目在使用該密鑰】

              2、使用秘鑰生成工具,根據自身需求生成成對的公私鑰;/

              二、支付寶回調使用

              PHP直播源碼在接收到用戶的充值請求后,會自行調起支付寶支付進行支付,可將支付寶相關配置參數放到后臺進行填寫,方便更改替換。php的web端下載支付寶對應的sdk進行引入使用。

              1、PHP直播源碼在后臺需要添加的支付寶配置文件內容


              //合作身份者id,以2088開頭的16位純數字
              $alipay_config['partner']  = '根據實際情況填寫';
              //商戶的私鑰(后綴是.pen)文件相對路徑
              $alipay_config['private_key_path'] = dirname(__FILE__).'/key/rsa_private_key.pem';
              //支付寶公鑰(后綴是.pen)文件相對路徑
              $alipay_config['ali_public_key_path']= dirname(__FILE__).'/key/alipay_public_key.pem';
              //簽名方式 
              $alipay_config['sign_type']    = strtoupper('RSA');
              //字符編碼格式 目前支持 gbk 或 utf-8
              $alipay_config['input_charset']= strtolower('utf-8');
              //ca證書路徑地址,用于curl中ssl校驗
              //請保證cacert.pem文件在當前文件夾目錄中
              $alipay_config['cacert']    = dirname(__FILE__).'/cacert.pem';
              //訪問模式,根據自己的服務器是否支持ssl訪問,若支持請選擇https;若不支持請選擇http
              $alipay_config['transport']    = 'http';


              2、回調


              //支付寶 回調
              public function notify_ali() {
                      $configpri=getConfigPri();
              require_once(CMF_ROOT."sdk/alipay_app/alipay.config.php");
                      //合作身份者id
                      $alipay_config['partner']  = $configpri['aliapp_partner'];      
              require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_core.function.php");
              require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_rsa.function.php");
              require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_notify.class.php");
              引入需要的文件及配資信息,根據實際情況填寫


              //計算得出通知驗證結果
              $alipayNotify = new \AlipayNotify($alipay_config);
              $verify_result = $alipayNotify->verifyNotify();
              $this->logali("ali_data:".json_encode($_POST));
              if($verify_result) {//驗證成功
              //獲取商戶訂單號、支付寶交易號、交易狀態等【根據自己的實際需求   獲取需要的參數】
              $out_trade_no = $_POST['out_trade_no'];      
              if($_POST['trade_status'] == 'TRADE_FINISHED') {
              //判斷該筆訂單是否在商戶網站中已經做過處理
              //如果有做過處理,根據實際業務來編寫程序 
              }else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
              //判斷該筆訂單是否在商戶網站中已經做過處理
              //如果沒有做過處理,根據實際業務來編寫程序  
              }    
              }else {
              $this->logali("驗證失敗");  
              //驗證失敗echo "fail";
              //調試用,寫文本函數記錄程序運行情況是否正常
              //logResult("這里寫入想要調試的代碼變量值,或其他運行的結果記錄");
              }    
              }


              3、初始化AlipayNotify及獲取驗證結果的業務說明

              (1)驗證結果


              function verifyNotify(){
              if(empty($_POST)) {//判斷POST來的數組是否為空
              return false;
              }else {
              //生成簽名結果
              $isSign = $this->getSignVeryfy($_POST, $_POST["sign"]);
              //獲取支付寶遠程服務器ATN結果(驗證是否是支付寶發來的消息)
              $responseTxt = 'false';
              if(!empty($_POST["notify_id"])){
              $responseTxt= $this->getResponse($_POST["notify_id"]);}
              //注意:$responsetTxt的結果不是true,與服務器設置問題、合作身份者ID、notify_id一分鐘失效有關,isSign的結果不是true,與安全校驗碼、請求時的參數格式(如:帶自定義參數等)、編碼格式有關
              if (preg_match("/true$/i",$responseTxt) && $isSign) {
              return true;
              } else {
              return false;
              }
              }

               

              (2)獲取簽名結果


              function getSignVeryfy($para_temp, $sign) {
              //除去待簽名參數數組中的空值和簽名參數
              $para_filter = paraFilter($para_temp);
              //對待簽名參數數組排序
              $para_sort = argSort($para_filter); 
              //把數組所有元素,按照“參數=參數值”的模式用“&”字符拼接成字符串
              $prestr = createLinkstring($para_sort);  
              $isSgin = false;
              switch (strtoupper(trim($this->alipay_config['sign_type']))) {
              case "RSA" :
              $isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign);
              break;
              default :
              $isSgin = false;
              }
              return $isSgin;


              (3)服務器ATN結果



              function getResponse($notify_id) {
              $transport = strtolower(trim($this->alipay_config['transport']));
              $partner = trim($this->alipay_config['partner']);
              $veryfy_url = '';
              if($transport == 'https') {
              $veryfy_url = $this->https_verify_url;
              }
              else {
              $veryfy_url = $this->http_verify_url;
              }
              $veryfy_url = $veryfy_url."partner=" . $partner . "?ify_id=" . $notify_id;
              $responseTxt = getHttpResponseGET($veryfy_url, $this->alipay_config['cacert']);
              return $responseTxt;
              }

              本文對PHP直播源碼使用支付寶充值時,支付寶的配置接入及回調的使用進行簡單介紹,如有類似需求可進行簡單參照,如有其他問題或想進行PHP直播源碼開發,可聯系官網客服。

              聲明:以上內容為云豹科技作者本人原創,未經作者本人同意,禁止轉載,否則將追究相關法律責任www.radissonsedona.com

              本文標簽: PHP直播源碼
              男人和女人高潮免费网站_国产熟女高潮视频_精品国产美女福到在线不卡_japanese日本护士xxx