微信介面的sign演算法

2021-10-08 20:27:22 字數 2713 閱讀 1732

//作用:生成簽名

//以互動資料為例

<?php

/** * created by phpstorm.

* user: zhaoxinglu

* date: 2018/12/14

* time: 14:08

*/class cxordercontroller extends controller

private function getsign($obj)

//簽名步驟一:按字典序排序引數

ksort($parameters);

$string = $this->formatbizqueryparamap($parameters, false);

//簽名步驟二:在string後加入key

$string = $string . "&key=" . $this->key;

//簽名步驟三:md5加密

$string = md5($string);

//簽名步驟四:所有字元轉為大寫

$result_ = strtoupper($string);

return $result_;

}///作用:格式化引數,簽名過程需要使用

private function formatbizqueryparamap($paramap, $urlencode)

$buff .= $k . "=" . $v . "&";

}$reqpar='';

if (strlen($buff) > 0)

return $reqpar;

}protected function arraytransitionobject(array $array)

;foreach ($array as $key => $val)

} else

return $obj;}}

/**

* xml編碼

* @param mixed $data 資料

* @param string $root 根節點名

* @param string $item 數字索引的子節點名

* @param string $attr 根節點屬性

* @param string $id 數字索引子節點key轉換的屬性名

* @param string $encoding 資料編碼

* @return string

*/public function xml_encode($data, $root='xml', $item='item', $attr='', $id='id', $encoding='utf-8') =\"\"";

}$attr = implode(' ', $_attr);

}$attr = trim($attr);

$attr = empty($attr) ? '' : " ";

$xml = "<>";

$xml .= self::data_to_xml($data, $item, $id);

$xml .= "";

return $xml;

}/**

* 資料xml編碼

* @param mixed $data 資料

* @return string

*/public static function data_to_xml($data)

return $xml;

}public static function xmlsafestr($str)

function xmltoarray($xml)

/*** post 請求

/////陣列轉換成xml

private function arraytoxml($arr) else

}$xml .= "";

//echo $xml;exit;

return $xml;

}//xml轉換成陣列

private function xmltoarray($xml)

微信支付(紅包)介面的測試

2.組織引數的時候主要的就是簽名的生成,其實只要按照介面文件的步驟,乙個個寫下來,是沒有任何問題的,容易出錯的是當引數有中文的時候,容易出現錯誤,錯誤為 簽名錯誤 下面是我寫的主要的 以一段段的函式呈現 1.組織引數,以字典的結構儲存引數 用來生成簽名的方法,具體見下面 string sign ge...

微信小程式 api介面的配置

1.新建乙個資料夾,應包含以下檔案 util.js檔案 module.exports http.js檔案 const api base url 介面位址 module.exports bb params cc params 在其它頁面中呼叫介面 demo function 在其它頁面中呼叫介面如在d...

微信小程式獲取介面的封裝

1 第一步在pages同層級建立乙個config檔案然後裡面建立乙個config.js檔案 裡面寫入 const config export 匯出2 第二步在utils檔案裡建立乙個request.js檔案然後 引入config檔案 專案的公共介面 import from config config...