2 lili881217 lili881217 于 2015.07.08 18:06 提问

微信支付遇到CURL问题

PHP Fatal error: Uncaught exception 'WxPayException' with message 'curl出é”,é”è¯¯ç :60' in E:\wwwroot\pay\lib\WxPay.Api.php:566
Stack trace:
#0 E:\wwwroot\pay\lib\WxPay.Api.php(62): WxPayApi::postXmlCurl('<![...', 'https://api.mch...', false, 6)
#1 E:\wwwroot\pay\example\jsapi.php(36): WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder))
#2 {main}
thrown in E:\wwwroot\pay\lib\WxPay.Api.php on line 566

3个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.08 18:28

这个发送的消息乱码了,是不是你的数据编码格式有问题

lili881217
lili881217 亲 你做过微信支付吗?
2 年多之前 回复
oyljerry
oyljerry 回复lili881217: 既然是参数错误,那你就检查你提交的URL格式,可以用浏览器等来验证
2 年多之前 回复
lili881217
lili881217 老大 跟乱码没有 关系的 乱码是throw new WxPayException("参数错误");
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.07.08 18:57

看下WxPay.Api.php的62行,这里丢出了错误。

lili881217
lili881217 我发了一个新的你看看
2 年多之前 回复
lili881217
lili881217   2015.07.09 09:40

public function GetOpenid()
{
//$code=$_POST['lilongceshineirong'];
//通过code获得openid
if (!isset($_GET['code'])){
//触发微信返回code码
$baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING']);
$url = $this->__CreateOauthUrlForCode($baseUrl);
Header("Location: $url");
exit();
} else {
//获取code码,以获取openid
$code = $_GET['code'];
$openid = $this->getOpenidFromMp($code);
return $openid;
}
}

/**
 * 
 * 获取jsapi支付的参数
 * @param array $UnifiedOrderResult 统一支付接口返回的数据
 * @throws WxPayException
 * 
 * @return json数据,可直接填入js函数作为参数
 */
public function GetJsApiParameters($UnifiedOrderResult)
{
    if(!array_key_exists("appid", $UnifiedOrderResult)
    || !array_key_exists("prepay_id", $UnifiedOrderResult)
    || $UnifiedOrderResult['prepay_id'] == "")
    {
        throw new WxPayException("参数错误");
    }
    $jsapi = new WxPayJsApiPay();
    $jsapi->SetAppid($UnifiedOrderResult["appid"]);
    $timeStamp = time();
    $jsapi->SetTimeStamp($timeStamp);
    $jsapi->SetNonceStr(WxPayApi::getNonceStr());
    $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']);
    $jsapi->SetSignType("MD5");
    $jsapi->SetPaySign($jsapi->MakeSign());
    $parameters = json_encode($jsapi->GetValues());
    return $parameters;
}

62行 是注射 这个代码 是上 41行 到 下85行 的代码

Csdn user default icon
上传中...
上传图片
插入图片