curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //以下两种方式需选择一种 //第一种方法,cert 与 key 分别属于两个.pem文件 //默认格式为PEM,可以注释 curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM'); curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . '/apiclient_cert.pem'); //默认格式为PEM,可以注释 curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM'); curl_setopt($ch, CURLOPT_SSLKEY, getcwd() . '/apiclient_key.pem'); //curl_setopt($ch,CURLOPT_CAINFO,'rootca.pem'); //第二种方式,两个文件合成一个.pem文件 //curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem'); if (count($aHeader) >= 1) { curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader); } curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); $data = curl_exec($ch); if ($data) { curl_close($ch); return $data; } else { $error = curl_errno($ch); echo "call faild, errorCode:{$error}\n"; curl_close($ch); return false; } } $data = curl_post_ssl('https://api.mch.weixin.qq.com/secapi/pay/refund', 'merchantid=1246428601'); print_r($data);
function sendHongbao($params) { $key = API_KEY; $mch_billno = $params["mch_billno"]; //商户订单号 $mch_id = $params["mch_id"]; $appid = $params["appid"]; $send_name = $params["send_name"]; //商户名称 $total_amount = $params["total_amount"]; //付款金额 $total_num = $params["total_num"]; //红包发放总人数 $wishing = $params["wishing"]; //红包祝福语 $act_name = $params["act_name"]; //活动名称 $remark = $params["remark"]; //备注 $openid = $params["openid"]; $ip = $_SERVER["REMOTE_ADDR"]; $nonce_str = $params["nonce_str"]; $sendArr = array(); # 定义数组 $sendArr["mch_billno"] = $mch_billno; $sendArr["mch_id"] = $mch_id; $sendArr["wxappid"] = $appid; $sendArr["send_name"] = $send_name; $sendArr["re_openid"] = $openid; $sendArr["total_amount"] = $total_amount; $sendArr["total_num"] = $total_num; $sendArr["wishing"] = $wishing; $sendArr["client_ip"] = $ip; $sendArr["act_name"] = $act_name; $sendArr["remark"] = $remark; $sendArr["nonce_str"] = $nonce_str; ksort($sendArr); reset($sendArr); $sign = ""; $index = 0; while ($keyv = key($sendArr)) { if ($index == 0) { $sign .= $keyv . "=" . $sendArr[$keyv]; } else { $sign .= "&" . $keyv . "=" . $sendArr[$keyv]; } $index++; next($sendArr); } //return $key; //echo $sign."".$index; $sign .= "&key=" . $key; $signdata = md5($sign); $signdata = strtoupper($signdata); $sendstr = "<xml>\n"; $sendstr .= "<sign><![CDATA[" . $signdata . "]]></sign>\n"; $sendstr .= "<mch_billno><![CDATA[" . $mch_billno . "]]></mch_billno>\n"; $sendstr .= "<mch_id><![CDATA[" . $mch_id . "]]></mch_id>\n"; $sendstr .= "<wxappid><![CDATA[" . $appid . "]]></wxappid>\n"; $sendstr .= "<send_name><![CDATA[" . $send_name . "]]></send_name>\n"; $sendstr .= "<re_openid><![CDATA[" . $openid . "]]></re_openid>\n"; $sendstr .= "<total_amount><![CDATA[" . $total_amount . "]]></total_amount>\n"; $sendstr .= "<total_num><![CDATA[" . $total_num . "]]></total_num>\n"; $sendstr .= "<wishing><![CDATA[" . $wishing . "]]></wishing>\n"; $sendstr .= "<client_ip><![CDATA[" . $ip . "]]></client_ip>\n"; $sendstr .= "<act_name><![CDATA[" . $act_name . "]]></act_name>\n"; $sendstr .= "<remark><![CDATA[" . $remark . "]]></remark>\n"; $sendstr .= "<nonce_str><![CDATA[" . $nonce_str . "]]></nonce_str>\n"; $sendstr .= "</xml>"; //print_r($sign.$sendstr); // $resp = request_by_other2("https://api.mch.weixin.qq.com/pay/unifiedorder", $sendstr); $data = curl_post_ssl('https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack', $sendstr); return $data; }