public function hbPay($open_id,$total_amount,$order_no="",$wishing="分享有礼")
{
$name = "红包名称";
$appid = '';
$mch_id = '';
$nonce_str = getRandom(32);
if($order_no){
$mch_billno = $order_no;
}else{
$mch_billno = makeOrderNo();
}
$key = '';
$arr = [
'wxappid' => $app_id,
'mch_id' => $mch_id,
'nonce_str' => $nonce_str,
'mch_billno' => $mch_billno,
'send_name' => $name,
're_openid' => $open_id,
'total_amount'=>$total_amount*100,
'total_num'=>1,
'wishing'=>$wishing,
'client_ip'=>request()->ip(),
'act_name'=>'红包',
'remark'=>'分润'
];
ksort($arr);
$sign_str = "";
foreach ($arr as $k => $v) {
$sign_str .= $k.'='.$v.'&';
}
$sign_str = rtrim($sign_str, '&');
$sign_str = $sign_str.'&key='.$key;
$sign_str = strtoupper(md5($sign_str));
$arr['sign'] = $sign_str;
$xmlData = '<?xml version="1.0" encoding="UTF-8"?><xml>';
foreach ($arr as $key => $val) {
$xmlData .= "<".$key.">$val</".$key.">";
}
$xmlData .= "</xml>";
$url
= 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
$cert_pem = '';
$key_pem = '';
curl_setopt(
$ch,
CURLOPT_SSLCERT,
$cert_pem
);
curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');
curl_setopt(
$ch,
CURLOPT_SSLKEY,
$key_pem
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlData);
$result = curl_exec($ch);
curl_close($ch);
return $this->toXml($result);
}