Пример #1
0
    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);
Пример #2
0
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;
}