• 简书网微信公众号二维码
您当前的位置: 首页 > 网站建设 > 微信公众号红包裂变网站是怎么回事?

微信公众号红包裂变网站是怎么回事?

时间:2023-07-01 14:05 阅读数:122 人阅读 分类:网站建设

  估计很多朋友听说过微信公众号红包裂变这样的时候,看完之后,有的朋友就会心痒痒的,想着在这些网站上面也可以实现这个操作,但基本上不是一个网站就能搞定,是需要代码的,所以下面小编就给大家具体说说这分事情,请看下文介绍!

  直接公布源码,注意看下面的注意事项。

  $re = sendgroupredpack();

  var_dump($re);

  // 现金红包

  function sendredpack(){

  $url = "api.mch.weixin.qq/mmpaymkttransfers/sendredpack";

  $mch_billno = '0000000000' . date ( "YmdHis", time () ) . rand ( 1000, 9999 ); //商户订单号

  $mch_id = '0000000000'; //微信支付分配的商户号

  $wxappid = ''; //公众账号appid

  $send_name = ""; //商户名称

  $re_openid = ""; //用户openid

  $total_amount = "100"; // 付款金额,单位分

  $total_num = 1; //红包发放总人数

  $wishing = "恭喜发财"; //红包祝福语

  $client_ip = ""; //Ip地址

  $act_name = "关注有礼"; //活动名称

  $remark = "测试"; //备注

  $apikey = "key"; // key 商户后台设置的 微信商户平台(pay.weixin.qq)-->账户设置-->API安全-->密钥设置

  $nonce_str = md5(rand()); //随机字符串,不长于32位

  $m_arr = array (

  'mch_billno' => $mch_billno,

  'mch_id' => $mch_id,

  'wxappid' => $wxappid,

  'send_name' => $send_name,

  're_openid' => $re_openid,

  'total_amount' => $total_amount,

  'total_num' => $total_num,

  'wishing' => $wishing,

  'client_ip' => $client_ip,

  'act_name' => $act_name,

  'remark' => $remark,

  'nonce_str'=> $nonce_str

  );

  array_filter ( $m_arr ); // 清空参数为空的数组元素

  ksort ( $m_arr ); // 按照参数名ASCII码从小到大排序

  $stringA = "";

  foreach ( $m_arr as $key => $row ) {

  $stringA .= "&" . $key . '=' . $row;

  }

  $stringA = substr ( $stringA, 1 );

  // 拼接API密钥:

  $stringSignTemp = $stringA."&key=" . $apikey;

  $sign = strtoupper ( md5 ( $stringSignTemp ) ); //签名

  $textTpl = '

  ';

  $resultStr = sprintf($textTpl, $sign, $mch_billno, $mch_id, $wxappid, $send_name,$re_openid,$total_amount,$total_num,$wishing,$client_ip,$act_name,$remark,$nonce_str);

  return curl_post_ssl($url, $resultStr);

  }

  //裂变红包

  function sendgroupredpack()

  {

  $mch_billno = '0000000000' . date ( "YmdHis", time () ) . rand ( 1000, 9999 ); //商户订单号

  $mch_id = '0000000000'; //微信支付分配的商户号

  $wxappid = ''; //公众账号appid

  $send_name = ""; //商户名称

  $re_openid = ""; //用户openid

  $total_amount = "300"; //付款金额,单位分

  $total_num = 3; //红包发放总人数

  $amt_type = "ALL_RAND"; //红包金额设置方式 ALL_RAND—全部随机,商户指定总金额和红包发放总人数,由微信支付随机计算出各红包金额

  $wishing = "恭喜发财"; //红包祝福语

  $act_name = "关注有礼"; //活动名称

  $remark = "测试"; //备注

  $apikey = "key"; // key 商户后台设置的 微信商户平台(pay.weixin.qq)-->账户设置-->API安全-->密钥设置

  $nonce_str = md5(rand()); //随机字符串,不长于32位

  $m_arr = array (

  'mch_billno' => $mch_billno,

  'mch_id' => $mch_id,

  'wxappid' => $wxappid,

  'send_name' => $send_name,

  're_openid' => $re_openid,

  'total_amount' => $total_amount,

  'total_num' => $total_num,

  'amt_type' => $amt_type,

  'wishing' => $wishing,

  'act_name' => $act_name,

  'remark' => $remark,

  'nonce_str'=> $nonce_str

  );

  array_filter ( $m_arr ); // 清空参数为空的数组元素

  ksort ( $m_arr ); // 按照参数名ASCII码从小到大排序

  $stringA = "";

  foreach ( $m_arr as $key => $row ) {

  $stringA .= "&" . $key . '=' . $row;

  }

  $stringA = substr ( $stringA, 1 );

  // 拼接API密钥:

  $stringSignTemp = $stringA."&key=" . $apikey;

  $sign = strtoupper ( md5 ( $stringSignTemp ) ); //签名

  $textTpl = '

  ';

  $resultStr = sprintf($textTpl, $sign, $mch_billno, $mch_id, $wxappid, $send_name,$re_openid,$total_amount,$amt_type,$total_num,$wishing,$act_name,$remark,$nonce_str);

  $url = "api.mch.weixin.qq/mmpaymkttransfers/sendgroupredpack";

  return curl_post_ssl($url, $resultStr);

  }

  function curl_post_ssl($url, $vars, $second=30,$aHeader=array())

  {

  $ch = curl_init();

  //超时时间

  curl_setopt($ch,CURLOPT_TIMEOUT,$second);

  curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);

  //这里设置代理,如果有的话

  //curl_setopt($ch,CURLOPT_PROXY, '10.206.30.98');

  //curl_setopt($ch,CURLOPT_PROXYPORT, 8080);

  curl_setopt($ch,CURLOPT_URL,$url);

  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');

  //第二种方式,两个文件合成一个.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 ";

  curl_close($ch);

  return false;

  }

  }

  ?>

  如果大家也想完这个裂变红包,那么可以按照上文微微风小编的思路去操作,一般是没有问题的哦,当然了如果大家有更好的办法,也随时欢迎大家来和小编进行交流,但现在微信对于这一类事情查的比较严格,严重的时候还会封号!

  相关阅读:

  发微信公众号裂变红包营销有什么用?

  裂变红包微信二维码营销怎么做?有什么效果?

  裂变红包营销案例有哪些?跟传统营销相比有何优势?