php流调签名,微信接口签名及调用流程详解 - 黎明互联-官方博客 - 黎明互联 - 区块链培训,PHP培训,IT培训,职业技能培训,追求极致!改变您的职业生涯!...
在調(diào)用微信接口的時(shí)候無(wú)論是支付還是現(xiàn)金紅包等等接口都會(huì)用到接口的加密和校驗(yàn),微信的很多數(shù)據(jù)簽名和調(diào)用規(guī)則其實(shí)都是一樣的,首先構(gòu)建原始數(shù)據(jù),然后根據(jù)規(guī)則去除空值和簽名方式(如果與的話),接下來(lái)案子點(diǎn)排序后轉(zhuǎn)換為URL格式的字符串,拼接上加密的key,然后生成簽名。接下來(lái)就是按照規(guī)則調(diào)用接口了,這里先說(shuō)一下加密調(diào)用的流程,還是看流程圖更直觀一點(diǎn)。
微信接口加密簽名方式及接口調(diào)用流程圖
下面給出微信簽名算法的PHP代碼:
class Sign
{
const KEY = '微信支付后臺(tái)獲取';
/**
* 獲取簽名
* @param array $arr
* @return string
*/
public function getSign($arr){
//去除空值
$arr = array_filter($arr);
if(isset($arr['sign'])){
unset($arr['sign']);
}
//按照鍵名字典排序
ksort($arr);
//生成url格式的字符串
$str = $this->arrToUrl($arr) . '&key=' . self::KEY;
return strtoupper(md5($str));
}
/**
* 獲取帶簽名的數(shù)組
* @param array $arr
* @return array
*/
public function setSign($arr){
$arr['sign'] = $this->getSign($arr);;
return $arr;
}
/**
* 數(shù)組轉(zhuǎn)URL格式的字符串
* @param array $arr
* @return string
*/
public function arrToUrl($arr){
return urldecode(http_build_query($arr));
}
}
以上PHP代碼完成了整個(gè)簽名過(guò)程,對(duì)于將數(shù)據(jù)轉(zhuǎn)換為XML并發(fā)送到微信接口的代碼可以參照《PHP數(shù)組和XML相互轉(zhuǎn)換的函數(shù)》和《使用PHP基于RESTful風(fēng)格上傳文件或POST字符串》兩篇文章。
總結(jié)
以上是生活随笔為你收集整理的php流调签名,微信接口签名及调用流程详解 - 黎明互联-官方博客 - 黎明互联 - 区块链培训,PHP培训,IT培训,职业技能培训,追求极致!改变您的职业生涯!...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么设置u盘启动uefi启动 设置U盘U
- 下一篇: 非因果滤波器 matlab,对于无阶跃响