好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP實現微信退款的方法示例

PHP實現微信退款的方法示例

熱門標簽:海南人工外呼系統有效果嗎 阿里云400電話申請加工單 地下城堡2圖九地圖標注 九江外呼系統 抖音有個地圖標注是什么意思 七魚外呼系統停用嗎 保定crm外呼系統運營商 西區企業怎么做地圖標注入駐 智能電話機器人排名前十名南京

本文實例講述了PHP實現微信退款的方法。分享給大家供大家參考,具體如下:

$obj = new WXRefund('參數');
$obj->refundApi();

直接能用 公眾號的參數 自己加上吧 只能幫你們到這了!

?php
namespace Wechat;
/**
 * 微信退款
 * @author    zzy
 * @version   $V1.0.0$
 * @date    2018-11-9
 */
class WXRefund
{
  protected $SSLCERT_PATH ='';//證書
  protected $SSLKEY_PATH = '';//證書
  protected $opUserId = '';//商戶號
  protected $key = '';//API密鑰
  protected $appId = '';//appId
  function __construct($outTradeNo, $totalFee, $outRefundNo, $refundFee)
  {
    //初始化退款類需要的變量
    $this->totalFee = $totalFee;//訂單金額
    $this->refundFee = $refundFee;//退款金額
    $this->outTradeNo = $outTradeNo;//訂單號
    $this->outRefundNo = $outRefundNo;//退款訂單
  }
  /**
   * 通過微信api進行退款流程 唯一對外接口
   * @return string
   */
  public function refundApi()
  {
    $parma = array(
      'appid' => $this->appId,
      'mch_id' => $this->opUserId,
      'nonce_str' => randoms(32),//這個是隨機數 自己封裝去吧。。。
      'out_refund_no' => $this->outRefundNo,
      'out_trade_no' => $this->outTradeNo,
      'total_fee' => intval($this->totalFee * 100),
      'refund_fee' => intval($this->refundFee * 100),
    );
    $parma['sign'] = $this->getSign($parma, $this->key);
    $xmldata = $this->arrayToXml($parma);
    $xmlresult = $this->postXmlSSLCurl($xmldata, 'https://api.mch.weixin.qq.com/secapi/pay/refund');
    $result = $this->arrayToXml($xmlresult);
    return $result;
  }
  /**
   * 數組轉xml
   * @param $arr
   * @return string
   */
  protected function arrayToXml($arr)
  {
    $xml = "xml>";
    foreach ($arr as $key => $val) {
      if (is_numeric($val)) {
        $xml .= "" . $key . ">" . $val . "/" . $key . ">";
      } else {
        $xml .= "" . $key . ">![CDATA[" . $val . "]]>/" . $key . ">";
      }
    }
    $xml .= "/xml>";
    return $xml;
  }
  /**
   * 簽名加密
   * @param $params
   * @param $key
   */
  protected function getSign($params, $key)
  {
    ksort($params, SORT_STRING);
    $unSignParaString = $this->formatQueryParaMap($params, false);
    return $signStr = strtoupper(md5($unSignParaString . "key=" . $key));
  }
  /**
   * 排序
   * @param $paraMap
   * @param bool $urlEncode
   * @return bool|string
   */
  protected function formatQueryParaMap($paraMap, $urlEncode = false)
  {
    $buff = "";
    ksort($paraMap);
    foreach ($paraMap as $k => $v) {
      if (null != $v  "null" != $v) {
        if ($urlEncode) {
          $v = urlencode($v);
        }
        $buff .= $k . "=" . $v . "";
      }
    }
    $reqPar = '';
    if (strlen($buff) > 0) {
      $reqPar = substr($buff, 0, strlen($buff) - 1);
    }
    return $reqPar;
  }
  /**
   * 需要使用證書的請求
   * @param $xml
   * @param $url
   * @param int $second
   * @return bool|mixed
   */
  protected function postXmlSSLCurl($xml, $url, $second = 30)
  {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_TIMEOUT, $second);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
    curl_setopt($ch, CURLOPT_SSLCERT, $this->SSLCERT_PATH);
    curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');
    curl_setopt($ch, CURLOPT_SSLKEY, $this->SSLKEY_PATH);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    $data = curl_exec($ch);
    if ($data) {
      curl_close($ch);
      return $data;
    } else {
      $error = curl_errno($ch);
      echo "curl出錯,錯誤碼:$error" . "br>";
      curl_close($ch);
      return false;
    }
  }
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP微信開發技巧匯總》、《php curl用法總結》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《PHP中json格式數據操作技巧匯總》及《PHP針對XML文件操作技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP實現的支付寶支付功能示例
  • PHP微信支付功能示例
  • PHP小程序支付功能完整版【基于thinkPHP】
  • PHP設計模式之單例模式定義與用法分析
  • docker搭建php+nginx+swoole+mysql+redis環境的方法
  • php+mysql開發中的經驗與常識小結
  • PHP設計模式之抽象工廠模式實例分析
  • PHP設計模式之簡單工廠和工廠模式實例分析
  • PHP實現無限極分類的兩種方式示例【遞歸和引用方式】
  • PHP中localeconv()函數的用法

標簽:遼陽 甘肅 昭通 韶關 九江 十堰 梅河口 涼山

巨人網絡通訊聲明:本文標題《PHP實現微信退款的方法示例》,本文關鍵詞  PHP,實現,微信,退款,的,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現微信退款的方法示例》相關的同類信息!
  • 本頁收集關于PHP實現微信退款的方法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 激情六月在线视频观看| 欧美特黄一免在线观看| 翁虹任达华三级无删减电影 | 扒开腿狂躁老师视频免费| 2019天天干| 软糯小受灌满哭求饶h| 一女多男肉| 玩50岁熟妇女邻居AV| 国内自产一区c区| 男人扎女下面很爽网站| 迷人的保姆中文| 嗯灬啊灬快灬高潮了蜜夜影视| 前男友扒开我的奶罩子| 被原上司紧缚波多野结衣| 瑞克和莫蒂第四季| 黄金网站app视频下载大全| 多强被?c到爽??H动漫| 欧美笫一页| 与子乱刺激对白在线播放| 国精产品永久999| 国产性大战XXXXX久久久| 欧美老妇60| 性动态视频| 日韩在线观看第一页| 91人妻久久久久久久久蜜臀| 国产精品天天天天影视| 唐唐三喝宁荣荣乳汁的乳| 被公侵犯的岬奈奈美88av| 性欧美18ⅩXOO极品图片| 极品嫩模啪啪喷水久久爱一区二区| 美女任你摸视频| 特种兵肌肉受h| 看免费真人直播网站| 成人国产一区二区| 97丨九色丨国产丨PORNY| 啪啪啪啪动态图| 女人被两根一起进3p的动漫| 国产激情综合五月久久| 人和拘一级毛片免费播放| 把美女衣服脱的视频| 一级人与动毛片免费播放|