微信企业付款到个人钱包引发的坑之反思~!
企业付款到个人钱包也就是用户在微信公众平台提现可以直接打入提现者微信的钱包!但要满足:
1)企业开通微信支付90天
2)连续30天有交易才能开通此功能
文章图片
今天有幸能开发此功能,我只能说我又涨知识了!!!在我编程的这条道路上我又多见到了一些坑!下面就给大家讲一下今天遇到的两个坑!
文章图片
1)CA证书引入问题,开发过程中遇到了CA证书验证失败的问题,百度之后网上有的说要用绝对路径,有的人说要用相对路径!
文章图片
小梦使用的是Thinkphp3.2框架开发的这个功能,最终我结果告诉我用绝对路径,还要用到PHP的一个函数getcwd(),代码如下
curl_setopt($curl,CURLOPT_SSLCERT,getcwd()."/cert/apiclient_cert.pem");
curl_setopt($curl,CURLOPT_SSLKEY,getcwd()."/cert/apiclient_key.pem");
curl_setopt($curl,CURLOPT_CAINFO,getcwd()."/cert/rootca.pem");
文章图片
2)签名和提交数据的一致性问题:
微信签名文档上有详细的说明,但是我按照文档操作迟迟都是签名验证失败!最终总结如下注意点:
(1)key是商户设置的密匙和微信支付统一下单的密匙是一样的
(2)加密的数据顺序和提交到微信接口参数值的顺序不能改变也就是我们在传递参数的时候直接讲数组转换成xml提交到微信api,代码如下:
$dataArr=array();
$dataArr['amount']="金额";
$dataArr['check_name']="FORCE_CHECK";
$dataArr['desc']="xxxx";
$dataArr['mch_appid']="微信公众平台的appid";
$dataArr['mchid']="商户号";
$dataArr['nonce_str']= "随机数";
$dataArr['openid']=“用户的openid”;
$dataArr['partner_trade_no']=“交易号”;
$dataArr['re_user_name']=“开启验证用户的真实姓名”;
$dataArr['spbill_create_ip']=“ip地址”;
$sign_obj = WechatSign::getInstance();
$sign = $sign_obj->getSign($dataArr);
WechatSign类文件如下:
/**
*作用:格式化参数,签名过程需要使用
*/
function formatBizQueryParaMap($paraMap)
{
$buff = "";
foreach ($paraMap as $k => $v)
{
if($k != "sign" && $v != "" && !is_array($v)){
$buff .= $k . "=" . $v . "&";
}
}
$buff = trim($buff, "&");
return $buff;
}
/**
*作用:生成签名
*/
function getSign($Obj)
{
//签名步骤一:按字典序排序参数
ksort($Obj);
//dump($Obj);
$String = $this->formatBizQueryParaMap($Obj);
//echo '【string1】'.$String.'
';
//签名步骤二:在string后加入KEY
$String = $String."&key=商户密匙";
//echo "【string2】".$String."
";
//签名步骤三:MD5加密
$String = md5($String);
//echo "【string3】 ".$String."
";
//签名步骤四:所有字符转为大写
$result_ = strtoupper($String);
//echo "【result】 ".$result_."
";
return $result_;
}
之后获取到签名之后我们直接将数组转换成xml传给微信api
//数组转XML
functionarrayToXml($arr)
{
$xml= "";
foreach($arras$key=>$val){
if(is_numeric($val)){
$xml.="<".$key.">".$val."";
}else{
$xml.="<".$key.">";
}
}
$xml.="";
return$xml;
}
【微信企业付款到个人钱包引发的坑之反思~!】就是这样简简单单的几步,因为参数位置顺序以及数据统一问题拜拜浪费了很多时间,希望哪个小伙伴调用这个接口的时候一定要注意,不要和我一样马马虎虎,简单事情复杂化,一定要好好看文档!!!
文章图片
文章图片
文章图片
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 员工的微信朋友圈是公司的宣传阵地吗()
- FBI怎么和恐怖分子谈判
- 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能
- 织网布局,社群营销走进山东玖零落地企业
- 微信小程序基础知识
- 使用Promise对微信小程序wx.request请求方法进行封装
- 剥削劳动力系列(企业家剥削你时,他要付出巨大的代价)
- 杰克·韦尔奇卸任演讲(决定企业未来的10个经营原则)
- 何以解忧,企业信息化、数字化选型焦虑之五·系统安全隐患大