微信支付的统一下单接口,返回的是空解决方法 微信支付调用调用统一下单API,提示“签名错误”解决方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_35713752/article/details/102625745

微信支付统一下单接口返回的必须类似是 wx18150336246279f98d3de78d1950474601 的一串,才算统一下单成功了

首先一定要检查商户号的密钥是否正确,然后查看请求 https://api.mch.weixin.qq.com/pay/unifiedorder 接口的错误回调。

如果错误信息是 60 ,就是 效验SSL失败,php的解决方法是在curl 中添加


		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  //不验证 SSL 证书
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//不验证 SSL 证书域名

完整网络请求代码封装示例:

    /* 发送json格式的数据,到api接口 -xzz0704  */
    function https_curl_json($url,$data){
        $curl = curl_init();
		//设置url
		curl_setopt($curl, CURLOPT_URL,$url);
		//设置发送方式:post
		curl_setopt($curl, CURLOPT_POST, true);
		
		//试试手气新增,增加之后 curl 不报 60# 错误,可以请求到微信的响应
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  //不验证 SSL 证书
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//不验证 SSL 证书域名
		//设置发送数据
		curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
		//TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		$return_xml = curl_exec($curl);
		//关闭cURL资源,并且释放系统资源
		curl_close($curl);
		//禁止引用外部xml实体
		libxml_disable_entity_loader(true);
		//先把xml转换为simplexml对象,再把simplexml对象转换成 json,再将 json 转换成数组。
		$value_array = json_decode(json_encode(simplexml_load_string($return_xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
		$return_xml = $value_array['prepay_id'];
		
		if ($return_xml) {
			return $return_xml;
		} else {
			$error = curl_errno($curl);
			return "curl error, error code ".$error;
			//throw new WxPayException("curl出错,错误码:$error");
		}
    }

小程序和后端完整代码链接 php后端的

猜你喜欢

转载自blog.csdn.net/qq_35713752/article/details/102625745