微信提现php 该怎么加密,关于php 调用接口 微信云支付 HmacSha256 加密 request_content...
关于php 调用接口 微信云支付 HmacSha256 加密 request_content
关于php 调用接口 微信云支付 HmacSha256 加密 request_content 生成 authen_code
关于php 调用接口 微信云支付 authen_code 生成 HmacSha256 加密 request_content
因为官方没有给php 的demo , php官方给出的代码
//Message 要加密的字符串内容 secret 加密的key
$s = hash_hmac('sha256', 'Message', 'secret', true);
echo base64_encode($s);
$data = [
"out_sub_mch_id"=>"sz011sUX5s7xxxxxxxxx",//商户门店xx
"order_type"=>1,
"start_time"=>1595211255,
"end_time"=>1600049655,
"nonce_str" => 'fewfdsafaaaafeefwf'.rand(10000,99999)
];
dump($data);
$mech_id = '151*****';//你的商户号
# secret 我的密钥
$isdir = root_path().'extend/weixin/cert/'.$mech_id."/";
$filename = $isdir.'authcode.key';
$fh = fopen($filename, "r");
$str = fread($fh,filesize($filename));
$key = str_replace("\r\n","
",$str);//获取到我的密钥
$jsonstr = json_encode($data);
print_r($jsonstr);
$repos['request_content'] = $jsonstr;
$code = hash_hmac('sha256',$jsonstr,$key,true);
dump($code);
$code1 = base64_encode($code);
$urlcode1= urlencode($code);
dump($code1);
dump($urlcode1);
打印结果为
^ array:5 [▼
"out_sub_mch_id" => "sz011sUX5s7xxxxxxxxx"
"order_type" => 1
"start_time" => 1595211255
"end_time" => 1600049655
"nonce_str" => "fewfdsafaaaafeefwf78837"
]
{"out_sub_mch_id":"sz011sUX5s7xxxxxxxxx","order_type":1,"start_time":1595211255,"end_time":1600049655,"nonce_str":"fewfdsafaaaafeefwf78837"}
^ b"\x1A-õ;]-Z??£ù¶$?\x18\x03÷£æKz?lH,¯?wzâ&"
^ "Gi31O10tWpuIo/m2JJUYrQP3o+ZLej9sSCyvjHd64iY="
^ "%1A-%F5%3B%5D-Z%9B%88%A3%F9%B6%24%95%18%AD%03%F7%A3%E6Kz%3FlH%2C%AF%8Cwz%E2%26"
ok ,乱码 ,一看这肯定不对的 ,身边又没有java,官方给了java的jdk,C的示例,我又用不了。
想出了办法,百度 在线加密,将字符串 key 复制进去 得出的结果
3218d546714f18888f5ff20063cdd0f66d40d34996cda264276d0f62ce1bf9bb
一看这个结果跟我的差了不知道多少,网上各种百度php sha256 加密的,试了个遍
public static function generateSHASign($signpl,$secert){
$signature = self::base64UrlEncode(hash_hmac('sha256',$signpl,$secert,true));
return $signature;
}
public static function base64UrlEncode($str){
return rtrim(strtr(base64_encode($str),'+/','-_'),'=');
}
public static function base64url_decode($data)
{
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
}
public static function base64url_encode($data)
{
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
没有效果 ,得出的结果都不是我们想要的,还好,至少不是乱码了,离结果不远了.
最后找到一个方法打印结果 ,奇迹发生了, 结果一样的
$code = bin2hex(hash_hmac('sha256',$str,$key,true))
微信云支付接口调用说明里面 authen_code 全部为大写
最后修改的方法为
public static function upper_bin2hex_hash_hmac($str,$key){
return strtoupper(bin2hex(hash_hmac('sha256',$str,$key,true)));
}
成功!
最后修改后的代码
$isdir = root_path().'extend/weixin/cert/'.$mech_id."/";
$filename = $isdir.'authcode.key';
$fh = fopen($filename, "r");
$str = fread($fh,filesize($filename));
$key = str_replace("\r\n","
",$str);
$jsonstr = json_encode($data);
$repos['request_content'] = $jsonstr;
$bin2hex1 =self::upper_bin2hex_hash_hmac($jsonstr,$key);
$auth_info = [
"a"=> [
"authen_type"=>1, "authen_code"=>$bin2hex1
]
];
$repos['authen_info'] = $auth_info;
$repos = json_encode($repos,true);
$url = 'https://pay.qcloud.com/cpay/query_order_list_overview';
$res = $this->http_post_json($url,$repos);
$res = json_decode($res->response_content);
关于php 调用接口 微信云支付 HmacSha256 加密 request_content相关教程
微信提现php 该怎么加密,关于php 调用接口 微信云支付 HmacSha256 加密 request_content...相关推荐
- 微信小程序之登录跳转及调用接口获取信息
最近学习微信小程序,新学了网页跳转及获取个人信息 网页跳转需要 wx.switchTab方法 获取信息的话,首先调用接口,然后取出数据就可以了. 首先创建两个html文件,代码如下 <view ...
- 微信小程序发布后,真机调用接口失败:ERR_CERT_AUTHORITY_INVALID
前言 微信小程序基础库:2.12.0 现象 真机调试出现错误:ERR_CERT_AUTHORITY_INVALID,模拟器调试无错误. 小程序上线后,部分机型能够正常使用,另一部分机型不能正常使用. ...
- 微信公众号开发(一)服务器及接口的配置
微信公众号开发(一)服务器及接口的配置 关于微信公众号中的订阅号和服务的区别这里不多加讨论,网上有很多资源可以搜到,这里直接进入正题,如果是个人开发者,这里建议使用测试号进行开发学习,测试号的权限要比 ...
- php实现微信清粉功能,PHP实现微信提现功能
PHP实现微信提现功能 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: PHP实现微信提现功能.txt ] (友情提示:右键点上行txt文档名->目标另存为 ...
- php实现金币提现,PHP实现微信提现功能
本文实例为大家分享了PHP实现微信提现功能的具体代码,供大家参考,具体内容如下 一.实现功能 这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现: 官 ...
- 拼团功能实现 php_PHP实现微信提现功能
提现必须得用双向证书.所以大家一定要在微信的商户平台找到相应的地方去设置.因为做这个提现已经有一段时间了.所以设置微信商户平台的那几个地方没有图的情况.也说不清楚.下次再做提现的时候.给大家分享如何设 ...
- php微信绑定银行卡_PHP实现微信提现功能
本文实例为大家分享了PHP实现微信提现功能的具体代码,供大家参考,具体内容如下 一.实现功能 这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现: 官 ...
- 微信提现(V2版本)
注意事项: 1.v2版本提现需要用到证书(证书的密码就是你的mchid) 2.发送请求的时候需要setSSLSocketFactory 1.组装好提现需要的参数 Map<String,Objec ...
- 【微信】微信提现到零钱
微信提现到零钱代码,可直接运行,代码如下: import java.io.File; import java.io.FileInputStream; import java.security.KeyS ...
- 微信企业付款到零钱(微信提现)
由于项目中要用到微信提现,参考网上代码和官方文档写了提现的工具类 用到的相关类库 dom4j commons-lang3 httpclient-4.4.1 具体相关流程可以看微信企业付款到零钱的开发文 ...
最新文章
- iPhone App开发实战手册学习笔记(5)之IOS常用机制
- swift的可选值(optional)
- 【数据竞赛】5行代码检测分布不一致,代码少效果好!
- Windows Socket和Linux Socket编程的区别
- PHP获取QQ等级,php仿QQ等级太阳显示函数
- 使用php自动将文章标题或内容进行分词,添加和删除标签功能实例!
- 解决ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost
- 微信小程序代码组成 小程序涉及到的文件类型
- 动画(animation)
- 盒子box在网页中居中的方法
- 账号权限问题导致数据泄露频发,如何破解“万豪们”的安全难题?
- 个体工商户营业执照在网上如何年检?
- php获得当前时间差,PHP获取当前时间差8小时的问题
- js 动态给style标签内添加样式
- Rest-assured + testNG1
- 王半仙儿的日记-0011——就这样做,一路做下去
- 《企业管理概论》在线平时作业2
- .Bank文件音效提取
- Mann-Whitney非参数多组比较R计算方法
- 微信数据库最新的解密方式,C++代码解密微信数据库信息!