当前位置: 首页 > news >正文

微信html5模板网站/软文广告经典案例600

微信html5模板网站,软文广告经典案例600,网站建设投资,wordpress手机悬浮根据微信高级红包接口,开发PHP版本的API接口,现在进行主要代码分析。 红包接口调用请求代码,所有请求参数为必填参数与文档对应: class Wxapi {private $app_id wxXXXXXXXXXXXX; //公众账号appid,首先申请与之配套的公…

微信红包API接口(PHP),微信支付接口分享朋友圈发红包

根据微信高级红包接口,开发PHP版本的API接口,现在进行主要代码分析。

红包接口调用请求代码,所有请求参数为必填参数与文档对应:

class Wxapi {private $app_id = 'wxXXXXXXXXXXXX'; //公众账号appid,首先申请与之配套的公众账号private $app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXX';//公众号secret,用户获取用户授权tokenprivate $app_mchid = 'XXXXXXXX';//商户号idfunction __construct(){//do sth here....}public function pay($re_openid){include_once('WxHongBaoHelper.php');$commonUtil = new CommonUtil();$wxHongBaoHelper = new WxHongBaoHelper();$wxHongBaoHelper->setParameter("nonce_str", $this->great_rand());//随机字符串,丌长于 32 位$wxHongBaoHelper->setParameter("mch_billno", $this->app_mchid.date('YmdHis').rand(1000, 9999));//订单号$wxHongBaoHelper->setParameter("mch_id", $this->app_mchid);//商户号$wxHongBaoHelper->setParameter("wxappid", $this->app_id);$wxHongBaoHelper->setParameter("nick_name", '红包');//提供方名称$wxHongBaoHelper->setParameter("send_name", '红包');//红包发送者名称$wxHongBaoHelper->setParameter("re_openid", $re_openid);//相对于医脉互通的openid$wxHongBaoHelper->setParameter("total_amount", 100);//付款金额,单位分$wxHongBaoHelper->setParameter("min_value", 100);//最小红包金额,单位分$wxHongBaoHelper->setParameter("max_value", 100);//最大红包金额,单位分$wxHongBaoHelper->setParameter("total_num", 1);//红包収放总人数$wxHongBaoHelper->setParameter("wishing", '感谢您参与红包派发活动,祝您新年快乐!');//红包祝福诧$wxHongBaoHelper->setParameter("client_ip", '127.0.0.1');//调用接口的机器 Ip 地址$wxHongBaoHelper->setParameter("act_name", '红包活动');//活劢名称$wxHongBaoHelper->setParameter("remark", '快来抢!');//备注信息$postXml = $wxHongBaoHelper->create_hongbao_xml();$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';$responseXml = $wxHongBaoHelper->curl_post_ssl($url, $postXml);//用作结果调试输出//echo htmlentities($responseXml,ENT_COMPAT,'UTF-8');$responseObj = simplexml_load_string($responseXml, 'SimpleXMLElement', LIBXML_NOCDATA);return $responseObj->return_code;}

获取随机字符串方法:

public function great_rand(){$str = '1234567890abcdefghijklmnopqrstuvwxyz';for($i=0;$i<30;$i++){$j=rand(0,35);$t1 .= $str[$j];}return $t1;    
}

签名算法:

protected function get_sign(){define('PARTNERKEY',"QSRXXXXXXXXXXXXXXXXXXXXX");try {if (null == PARTNERKEY || "" == PARTNERKEY ) {throw new SDKRuntimeException("密钥不能为空!" . " ");}if($this->check_sign_parameters() == false) {   //检查生成签名参数throw new SDKRuntimeException("生成签名参数缺失!" . " ");}$commonUtil = new CommonUtil();ksort($this->parameters);$unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);$md5SignUtil = new MD5SignUtil();return $md5SignUtil->sign($unSignParaString,$commonUtil->trimString(PARTNERKEY));}catch (SDKRuntimeException $e){die($e->errorMessage());}
}

CURL请求以及发送证书:

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_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);     //cert 与 key 分别属于两个.pem文件//请确保您的libcurl版本是否支持双向认证,版本高于7.20.1curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.'zhengshu'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.'zhengshu'.DIRECTORY_SEPARATOR.'apiclient_key.pem');curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.'zhengshu'.DIRECTORY_SEPARATOR.'rootca.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;}
}

入口文件:

@require "pay.php";
//获取用户信息
$get = $_GET['param'];
$code = $_GET['code'];
//判断code是否存在
if($get=='access_token' && !empty($code)){$param['param'] = 'access_token';$param['code'] = $code;$packet = new Packet();//获取用户openid信息$userinfo = $packet->_route('userinfo',$param);if(empty($userinfo['openid'])){exit("NOAUTH");}//调取支付方法$packet->_route('wxpacket',array('openid'=>$userinfo['openid']));
}else{$packet->_route('userinfo');
}
 

转载于:https://www.cnblogs.com/boystar/p/4766458.html

http://www.lbrq.cn/news/1433269.html

相关文章:

  • 网站建设需要什么硬件/网站优化排名方案
  • 设计网站免费的/最新小组排名
  • 公司线上推广/疫情优化调整
  • 合适做服装的国际网站/网络销售怎么聊客户
  • 沈阳教做网站/网络服务
  • 展架设计在哪个网站做/2023广东最新疫情
  • 河北省建设项目信息网站/长春网站制作计划
  • 海口制作手机网站/谷歌seo怎么优化
  • 厦门大型网站设计公司/seo兼职论坛
  • 网站建设制作设计公司哪家好/交换友链是什么意思
  • 深圳室内设计工作室排名/杭州网站seo优化
  • 中国国际室内设计网/深圳seo优化方案
  • wordpress默认主题下载/百度搜索关键词排名优化
  • 工行网站为何做的那么垃圾/郑州seo推广
  • 怎么做代理人金沙网站/驻马店百度seo
  • 网站外地备案/优化营商环境发言稿
  • 网站管理基本内容/百度股市行情上证指数
  • 网页游戏网站网址/上海优化公司选哪个
  • 网络营销推广渠道有哪些/合肥网站优化方案
  • 铁岭网站建设/收录优美图片找不到了
  • 网上买吃的网站做代理/外贸网站推广的方法
  • 怎么做钓鱼网站/国外比较开放的社交软件
  • 沈阳做网站有名公司有哪些/网络推广是诈骗吗
  • 黑客入侵别人网站做seo/可靠的网站优化
  • 做类似美团的网站吗/站长工具站长
  • 如何做交易网站/百度账户托管公司
  • 家装网站建设案例/长沙官网seo推广
  • 网站做百度推广有没有效果/软件开发需要学什么
  • 2019年新电商法做网站/长沙专业竞价优化公司
  • 做网站的思想体会/哪个网站学seo是免费的
  • 记录一些奇奇怪怪的面试题
  • Qt 实现Ymodem协议源码分享
  • Linux 软件编程:文件IO、目录IO、时间函数
  • XGBoost 的适用场景以及与 CNN、LSTM 的区别
  • 【PyTorch学习笔记 - 01】 Tensors(张量)
  • 使用docker compose 部署dockge