‘壹’ php使用CURL请求https的微信统一下单接口时报错,同样的代码我在另一台机器上运行是正常的
我也遇到了同样的问题,只要是走微信,偶尔都会请求不到,原来是正常的。今天排查了一天,终于找到了原因所在。
centos原生用的NSS,而不是OpenSSL,curl调用NSS库请求https时偶尔会出现请求不到的情况。
解决方案:
参考网址:网页链接
按步骤完成后记得重启 php-fpm和nginx
‘贰’ 微信公众发ticket取得二维码图并发微信素材获得media_id..求PHP代码
private function receiveEvent($object)
{
$contentStr = "";
switch ($object->Event)
{
case "subscribe":
$contentStr = "欢迎 ";
if (isset($object->EventKey)){
$contentStr = "关注二维码场景 ".$object->EventKey;
}
break;
case "SCAN":
$contentStr = "扫描 ".$object->EventKey;
//要实现统计分析,则需要扫描事件写入数据库,这里可以记录 EventKey及用户OpenID,扫描时间
break;
default:
break;
}
$resultStr = $this->transmitText($object, $contentStr);
return $resultStr;
‘叁’ 微信公众号,长链接转短链接,怎么操作
可以使用电脑版微信进行长链接的转换,步骤如下。
1、首先打开自己的电脑,然后登录电脑版微信,把微信公众号的长链接复制到微信的文件传输。
‘肆’ php微信支付rootca.pem怎么用
classConfig{
/**
*微信相关常量
*/
/**微信appid*/
constWECHAT_APPID='';
/**微信appsecret*/
constWECHAT_APPSECRET='';
/**微信支付证书pem格式*/
constWECHAT_PAY_CERT='D:certapiclient_cert.pem';
/**微信支付证书密钥pem格式*/
constWECHAT_PAY_KEY='D:certapiclient_key.pem';
/**微信支付CA根证书(用来验证的网站证书是否是CA颁布)*/
constWECHAT_PAY_ROOTCA='D:cert ootca.pem';
}
/**
*@paramstring$url要打开的地址
*@paramnull$data要post的参数
*@parambool$cert微信支付证书
*@returnmixed|string
*/
publicstaticfunctioncurl($url,$data=null,$cert=false)
{
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if($cert===true){
curl_setopt($curl,CURLOPT_SSLCERT,Config::WECHAT_PAY_CERT);
curl_setopt($curl,CURLOPT_SSLKEY,Config::WECHAT_PAY_KEY);
curl_setopt($curl,CURLOPT_CAINFO,Config::WECHAT_PAY_ROOTCA);
}
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($curl);
if(curl_errno($curl)){
return'ERROR_200'.curl_error($curl);
}
curl_close($curl);
return$output;
}
curl 是我直接从在用类中截出来的静态函数,你要是直接调用记得去掉静态修饰符