2022年12月27号网上管理婆获取链接授权方法
背景:由于网上管家婆使用了三方授权(Auth2.0)。获取token需要通过登录网上管家婆账户密码才能完成授权。
1:官方文档链接地址
http://d7.mygjp.com.cn:8021/web/#/erpapi?page_id=1355
官方文档加解密说明:
官方文档的加解密方法解释的很简单。在代码调试的时候。出现加密之后和官方文档不一样的的结果。
在线加解密码工具
http://www.metools.info/code/aes275.html
使用AES加密解密高级版本。就可以在线检测加解密问题
加密参数说明:jsonParam ={"TimeStamp":"2022-02-22 22:22:22","GrantType":"auth_token","AuthParam":"123456"}
1:固定上面参数,注意如果时间是字符串,会存在转义,需要写成时间字符串格式。才能使用
$params = json_encode($params);
$iv = substr($appsecret, 5, 16);
$aesstr = openssl_encrypt($params, 'aes-256-cbc', $appsecret,0,$iv);
首先对参数。通过json格式化。再获取签名变量,取其中的5-16。再使用openssl_encrypt($params, 'aes-256-cbc', $appsecret,0,$iv);方法进行加密。获取加密的P
上面固定参数。加密之后的结果。和下面结果一样就OK,注意不需要base64转码,文档上错误。注意不需要base64转码,文档上错误。注意不需要base64转码,文档上错误。
UrWWyyCy3bUMOkn0Sc8r+j1WufHDh9bASG6krOASc+T/ldypdrkT0gcFTzMNNDZNvRf9fAFBZMEYOsgxTA2q1vzf0Ma64JMqQkUUG9dPQ2bSCcU2CEP1KC1NTkLMmELC
2:得到上面的参数。获取sign签名的方法
$signprams = [
'appkey'=>$this->login['appkey'],
'p'=>$p,
'signkey'=>$this->login['signkey'],
];
注意json_encode,不要开启\转义。如果开启转义,会造成签名错误。
$params = json_encode($params,JSON_UNESCAPED_SLASHES);
$sign = hash('sha256', $params);
这样上面的步骤就完成了平台加密,和签名方法。对返回的数据,反推就可以进行处理