婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP實現微信申請退款功能

PHP實現微信申請退款功能

熱門標簽:合肥企業外呼系統線路 代理打電話機器人 神龍斗士電話機器人 桂陽公司如何做地圖標注 太原400電話申請流程 電信外呼系統多少錢一個月 宿州正規外呼系統軟件 萍鄉商鋪地圖標注 企業400電話辦理多少費用

本文實例為大家分享了PHP實現微信申請退款的具體代碼,供大家參考,具體內容如下

微信公眾號開發文檔鏈接地址

前面講了怎么實現微信支付,詳見博文:PHP實現微信支付(jsapi支付)流程  和ThinkPHP中實現微信支付(jsapi支付)流程。由于業務需求,還需要有微信退款,經過研究和摸索,也終于搞定了。

前期準備:<

當然是搞定了微信支付,不然怎么退款,這次還是使用官方的demo。當然網上可能也有很多大神自己重寫和封裝了demo,或許更加好用簡潔,但是我還是不提倡用,原因如下:
(1)可能功能不全,或許他只是實現了微信支付,但是還有申請退款、查詢退款、訂單查詢、撤銷訂單等業務功能可能是你后續需要的,如果你依賴于大神的SDK的便捷,如果有新的業務需求,你就懵逼了;
(2)安全考慮,涉及到支付涉及到金錢,必須要非常安全。官方SDK雖然我也吐槽,但至少會相對比較安全,再次重寫,雖然暫時沒看出問題,但是萬一有漏洞就不好了。

本篇還是使用到官方提供的SDK中的最重要的一個類文件WxPay.Api.PHP中提供的refund()方法來實現,此方法在WxPay.Api.php文件的第141行,代碼如下:

 /** 
   * 
   * 申請退款,WxPayRefund中out_trade_no、transaction_id至少填一個且 
   * out_refund_no、total_fee、refund_fee、op_user_id為必填參數 
   * appid、mchid、spbill_create_ip、nonce_str不需要填入 
   * @param WxPayRefund $inputObj 
   * @param int $timeOut 
   * @throws WxPayException 
   * @return 成功時返回,其他拋異常 
   */ 
  public static function refund($inputObj, $timeOut = 6){ 
    $url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; 
    //檢測必填參數 
    if(!$inputObj->IsOut_trade_noSet()  !$inputObj->IsTransaction_idSet()) { 
      throw new WxPayException("退款申請接口中,out_trade_no、transaction_id至少填一個!"); 
    }else if(!$inputObj->IsOut_refund_noSet()){ 
      throw new WxPayException("退款申請接口中,缺少必填參數out_refund_no!"); 
    }else if(!$inputObj->IsTotal_feeSet()){ 
      throw new WxPayException("退款申請接口中,缺少必填參數total_fee!"); 
    }else if(!$inputObj->IsRefund_feeSet()){ 
      throw new WxPayException("退款申請接口中,缺少必填參數refund_fee!"); 
    }else if(!$inputObj->IsOp_user_idSet()){ 
      throw new WxPayException("退款申請接口中,缺少必填參數op_user_id!"); 
    } 
    $inputObj->SetAppid(WxPayConfig::APPID);//公眾賬號ID 
    $inputObj->SetMch_id(WxPayConfig::MCHID);//商戶號 
    $inputObj->SetNonce_str(self::getNonceStr());//隨機字符串 

    $inputObj->SetSign();//簽名 
    $xml = $inputObj->ToXml(); 
    $startTimeStamp = self::getMillisecond();//請求開始時間 
    $response = self::postXmlCurl($xml, $url, true, $timeOut); 
    $result = WxPayResults::Init($response); 
    self::reportCostTime($url, $startTimeStamp, $result);//上報請求花費時間 

    return $result; 
  } 

官方的方法,寫的很清楚需要哪些參數,還有一些必須參數SDK已經幫我們補齊了,我將這個方法重新封裝一下,便于在項目中調用:

 /** 
   * 微信退款 
   * @param string  $order_id  訂單ID 
   * @return 成功時返回(array類型),其他拋異常 
   */ 
  function wxRefund($order_id){ 
    //我的SDK放在項目根目錄下的Api目錄下 
    require_once APP_ROOT."/Api/wxpay/lib/WxPay.Api.php"; 
    //查詢訂單,根據訂單里邊的數據進行退款 
    $order = M('order')->where(array('id'=>$order_id,'is_refund'=>2,'order_status'=>1))->find(); 
    $merchid = WxPayConfig::MCHID; 

    if(!$order) return false; 

    $input = new WxPayRefund(); 
    $input->SetOut_trade_no($order['order_sn']);     //自己的訂單號 
    $input->SetTransaction_id($order['transaction_id']);   //微信官方生成的訂單流水號,在支付成功中有返回 
    $input->SetOut_refund_no(getrand_num(true));     //退款單號 
    $input->SetTotal_fee($order['total_price']);     //訂單標價金額,單位為分 
    $input->SetRefund_fee($order['total_price']);      //退款總金額,訂單總金額,單位為分,只能為整數 
    $input->SetOp_user_id($merchid); 

    $result = WxPayApi::refund($input); //退款操作 

    // 這句file_put_contents是用來查看服務器返回的退款結果 測試完可以刪除了 
    //file_put_contents(APP_ROOT.'/Api/wxpay/logs/log3.txt',arrayToXml($result),FILE_APPEND); 
    return $result; 
  } 

這里需要吐槽一下,竟然不說返回值的類型,在支付的時候返回的是XML數據,這里竟然返回的是數組,讓我措手不及,哈哈不過還是返回數組比較好,可以直接判斷處理。

方法調用就更加簡單了:

 //微信退款 
  $result = wxRefund($order_id); 
  // 這句file_put_contents是用來查看服務器返回的退款結果 測試完可以刪除了 
  //file_put_contents(APP_ROOT.'/Api/wxpay/logs/log4.txt',arrayToXml($result),FILE_APPEND); 
  if(($result['return_code']=='SUCCESS')  ($result['result_code']=='SUCCESS')){ 
    //退款成功 
  }else if(($result['return_code']=='FAIL') || ($result['result_code']=='FAIL')){ 
    //退款失敗 
    //原因 
    $reason = (empty($result['err_code_des'])?$result['return_msg']:$result['err_code_des']); 
  }else{ 
    //失敗 
  } 

退款成功返回如下:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP實現微信支付(jsapi支付)和退款(無需集成支付SDK)流程教程詳解
  • PHP開發實現微信退款功能示例
  • PHP實現微信申請退款流程實例代碼
  • php實現微信支付之退款功能
  • PHP實現微信退款功能
  • PHP實現QQ、微信和支付寶三合一收款碼實例代碼
  • PHP編程實現微信企業向用戶付款的方法示例
  • php實現微信支付之企業付款
  • php實現微信企業付款到個人零錢功能
  • php微信公眾號開發之微信企業付款給個人
  • PHP實現微信退款的方法示例

標簽:衡陽 鄂州 辛集 綏化 廊坊 崇左 白銀 太原

巨人網絡通訊聲明:本文標題《PHP實現微信申請退款功能》,本文關鍵詞  PHP,實現,微信,申請,退款,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現微信申請退款功能》相關的同類信息!
  • 本頁收集關于PHP實現微信申請退款功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品国产99国产| 亚洲一区视频在线| 久久久久国产精品麻豆ai换脸 | 成人午夜激情视频| 欧美一区二区三区影视| 麻豆精品一区二区| 久久久久99精品一区| 国产馆精品极品| 国产精品久久久久婷婷二区次| aaa国产一区| 亚洲图片欧美一区| 日韩一区二区免费高清| 国产一区二区精品久久| 亚洲欧洲日产国码二区| 欧美亚男人的天堂| 久久精品国产亚洲高清剧情介绍| 日韩欧美一级在线播放| 国产高清成人在线| 亚洲天天做日日做天天谢日日欢| 欧美日韩免费一区二区三区视频 | 蜜臀av一级做a爰片久久| 久久精品亚洲精品国产欧美| 97精品超碰一区二区三区| 亚洲午夜在线视频| 国产亚洲一区二区三区四区 | 中文字幕乱码久久午夜不卡 | 91精品中文字幕一区二区三区| 国产一区二区三区观看| 亚洲一卡二卡三卡四卡| 久久久久久日产精品| 欧美日韩黄色一区二区| 成人免费福利片| 天堂一区二区在线| 国产精品免费久久久久| 日韩欧美一区二区久久婷婷| 91成人网在线| 成人精品小蝌蚪| 免费成人在线网站| 亚洲裸体在线观看| 国产日韩精品一区| 日韩欧美aaaaaa| 欧美日韩一区在线观看| 91在线国产观看| 国产成人午夜精品影院观看视频| 亚洲chinese男男1069| 综合精品久久久| 欧美国产成人在线| 久久人人爽人人爽| 精品久久久久久久久久久久包黑料| 91麻豆国产福利精品| 国产xxx精品视频大全| 亚洲在线视频免费观看| 亚洲国产一二三| 99久久精品一区二区| 七七婷婷婷婷精品国产| 一区二区三区av电影| 国产精品国产三级国产aⅴ原创| 337p亚洲精品色噜噜噜| 91免费看视频| 成人av在线资源网站| 狠狠久久亚洲欧美| 久久99精品久久久久| 亚洲成a人v欧美综合天堂 | 中文字幕欧美日本乱码一线二线| 7777精品伊人久久久大香线蕉最新版| 91老师片黄在线观看| 波多野结衣在线一区| 高清beeg欧美| 国产精品久久久久久久久久免费看| 麻豆极品一区二区三区| www久久精品| 日韩美女天天操| 欧美嫩在线观看| 555夜色666亚洲国产免| 91精品在线观看入口| 3751色影院一区二区三区| 911国产精品| 精品免费视频一区二区| 久久久国产精品午夜一区ai换脸| 久久亚洲精华国产精华液| 久久久久久久久99精品| 国产精品福利一区二区三区| 国产精品不卡一区| 亚洲第一激情av| 蜜桃视频一区二区| 成+人+亚洲+综合天堂| 色综合天天在线| 欧美日韩一区二区三区在线| 欧美一级欧美一级在线播放| 欧美成人三级电影在线| 欧美激情综合五月色丁香小说| 欧美韩日一区二区三区| 亚洲最快最全在线视频| 蜜臀精品一区二区三区在线观看| 狠狠色狠狠色综合系列| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩国产一级二级| 91精品国产综合久久福利软件| 欧美第一区第二区| 成人免费在线视频观看| 男人的天堂久久精品| 国产精品综合一区二区| 在线视频亚洲一区| 精品88久久久久88久久久| 亚洲欧洲精品天堂一级 | 五月婷婷综合激情| 紧缚奴在线一区二区三区| 99久久精品免费| 日韩一区二区三| 亚洲精品国产精品乱码不99| 麻豆精品视频在线观看免费| 91蜜桃在线观看| xnxx国产精品| 日韩精品91亚洲二区在线观看 | 99视频精品在线| 91精品在线免费| 18欧美亚洲精品| 狠狠色丁香久久婷婷综| 欧美中文字幕久久| 中文字幕一区二区在线播放| 日本不卡123| 欧美在线观看18| 日韩码欧中文字| 丰满白嫩尤物一区二区| www一区二区| 蜜臀久久99精品久久久久宅男| 色婷婷久久99综合精品jk白丝| 国产亚洲污的网站| 狠狠色综合播放一区二区| 欧美日韩亚洲综合在线| 成人免费在线播放视频| 国产高清视频一区| 精品对白一区国产伦| 美女免费视频一区| 91精品国产麻豆国产自产在线 | 精品一区二区三区免费观看| 欧美精品久久天天躁| 一区二区成人在线| 欧美色图激情小说| 亚洲午夜日本在线观看| 欧美日韩亚洲另类| 蜜臀av在线播放一区二区三区| 91精品国产福利| 精品午夜久久福利影院| 精品福利在线导航| 国产成人自拍高清视频在线免费播放| 久久综合精品国产一区二区三区 | 亚洲精品一区二区三区四区高清| 人妖欧美一区二区| 日韩三级伦理片妻子的秘密按摩| 日本午夜精品视频在线观看 | 欧美精品一区二区三区在线| 韩国成人福利片在线播放| 久久久777精品电影网影网| 成人免费毛片片v| 亚洲一二三级电影| 欧美精品一区二区在线播放 | 色综合 综合色| 亚洲午夜精品在线| 日韩一级成人av| 丰满放荡岳乱妇91ww| 亚洲影院在线观看| 精品剧情v国产在线观看在线| 国产不卡在线播放| 亚洲成人一区在线| 久久精品一区二区| 欧洲精品一区二区| 久久精品久久综合| 中文字幕一区二区三区视频 | 国产精品乱子久久久久| 欧美在线视频日韩| 久久69国产一区二区蜜臀| 国产精品美女久久久久av爽李琼 | 91久久精品一区二区三区| 久久精品国产一区二区三| 国产精品成人免费在线| 欧美一区二区视频观看视频 | 日本一区二区三级电影在线观看 | 久久精品国产一区二区三 | 久草精品在线观看| 亚洲色图.com| 欧美成人性福生活免费看| av电影在线观看完整版一区二区| 亚洲va天堂va国产va久| 亚洲国产精品ⅴa在线观看| 欧美午夜精品久久久久久超碰| 国内精品伊人久久久久影院对白| 亚洲色图第一区| 久久嫩草精品久久久久| 欧美一级理论性理论a| 91久久精品国产91性色tv| 国产成人在线观看| 欧美中文字幕一区二区三区| 豆国产96在线|亚洲| 激情综合色播激情啊| 性感美女久久精品| 一区二区视频免费在线观看| 国产日产精品一区| 日韩精品一区二区在线| 欧美精三区欧美精三区 |