php生成小程序码,并在小程序端接收参数

后台代码:php

实现功能

1.从后台获取小程序码

2.微信扫码进入小程序并获取对应参数

对应代码

1.从后台获取小程序码

//获取小程序码
	public function get_share_code(){
		$img=$user=$goods=array();$res='';
		$user=db('user')->where('id',input('uid'))->find();
		$goods=db('goods')->where('id',input('gid'))->find();
		$img=db('my_share_goods')->where('uid='.input('uid').' and gid='.input('gid'))->find();//halt($img);
		//判断是否获取过,没获取过前往获取
		if (!$img) {
			$res=$this->xcxcode(input('gid'),input('uid'),input('fid'));
			if ($res) 
				db('my_share_goods')->insert(['uid'=>input('uid'),'gid'=>input('gid'),'img'=>$res]);
			else
				die('获取小程序码出错,请检查接口后重试');
		}else{
			$res=$img['img'];
		}
		$user['img']='data:image/jpg;base64,'.fileToBase64($user['img']);//用户图像转base64,没特殊要求无需处理
		return view('',['img'=>$img,'user'=>$user,'goods'=>$goods,'res'=>$res]);
	}

	//获取调用API接口的accesstoken
	public function getaccesstoken(){
		$path="./json/accesstoken.json";
		$info=file_get_contents($path);//获取本地存储accesstoken,格式自定义,不想存本地直接跳过判断用else获取即可
		$res=json_decode($info,true);
		if ($res) {
			$time=$res['time']+$res['expires_in'];
			if ($time>time()) {
				$access_token=$res['access_token'];
			}else{
				file_put_contents($path,'');
				return $this->getaccesstoken();
			}
		}else{
			$file=fopen($path, 'w');
			$config=config('xcx.');
			$appid = $config['appid'];
			$secret = $config['secret'];
			$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
			$ret = curl_request($url,'GET');
			$ret=json_decode($ret,true);
			if (isset($ret['access_token']) && $ret['access_token']!='') {
				$access_token=$ret['access_token'];
				$data['access_token']=$ret['access_token'];
				$data['expires_in']=$ret['expires_in'];
				$data['time']=time();
				fwrite($file,json_encode($data));
			}
		}
		return $access_token;
		
	}

	//请求微信获取小程序码
	public function xcxcode($id=3,$uid='',$fid='') {
		$access_token = $this->getaccesstoken();
		$url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $access_token;
		$data['scene'] = 'id=' . $id;//scene参数一定要拼接成字符串
		if ($uid) 
			$data['scene'] .='&fid='.$uid;
		if ($fid) 
			$data['scene'] .='&pid='.$fid;
		$data['page'] = "pages/details/details";//扫码后跳转的小程序页面(在小程序中必须注册)
		$data['is_hyaline']=true;
		$data['width']=840;
		$res = curl_request($url,'POST',$data);//post请求
		$path = './uploads/share_qrcode/h_' . $id . '.jpg';//保存小程序码文件
		@unlink($path);
		$ret=file_put_contents($path, $res);//将微信返回二进制文本写入图片
		db('goods')->where('id',$id)->update(['share_qrcode'=>mb_substr($path, 1)]);
		return mb_substr($path, 1);
	}

post请求微信接口方法

//请求第三方接口
	function curl_request($url, $type = "GET", $data=[]){
		$ch=curl_init();
			curl_setopt($ch,CURLOPT_URL,$url);
			curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
			curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
			curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
			curl_setopt($ch,CURLOPT_HEADER,0);

		$type = strtolower($type);
		switch ($type){
			case 'get':
				break;
			case 'post':
				//post请求配置
				curl_setopt($ch, CURLOPT_POST,1);
				if(!empty($data)){
					$postdata=json_encode($data);
					curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json;charset=utf-8','Content-Length:'.strlen($postdata)));
					curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
				}
				break;
		}
		$result = curl_exec($ch);
		curl_close($ch);
		return $result;
	}

2.微信扫码进入小程序并获取对应参数

1.二维码测试。生成二维码后可在开发者工具测试。通过二维码编译,如下图

参数处理,使用decodeURIComponent()函数处理参数

2.也可直接自定义参数测试。需将参数通过encodeURIComponent函数处理

如:parm="a=1&b=2c=3"     页面初始化参数应为:scene=encodeURIComponent(parm)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP微信小程序公益代是指使用PHP编写的用于实现微信小程序公益功能的代。微信小程序是一种便捷的移动应用程序,而公益功能是指为了社会公益事业而提供的服务。 在PHP中,可以通过调用微信小程序的API来实现公益功能。例如,可以使用PHP编写代来实现以下功能: 1. 慈善捐赠:用户可以通过微信小程序进行捐赠,PHP可以处理用户的捐赠请求,并将捐赠金额记录到数据库中。 2. 志愿者招募:组织可以在微信小程序上发布志愿者招募信息,PHP可以获取用户的报名信息,并将其保存到数据库中。 3. 公益活动展示:PHP可以从数据库中获取公益活动的信息,并将其展示在微信小程序上,供用户浏览和参与。 4. 资金管理:PHP可以处理用户的捐赠、退款等资金操作,并与微信支付接口进行交互,确保资金的安全和准确管理。 5. 爱心分享:用户可以通过微信小程序将公益活动分享给朋友,PHP可以生成带有分享信息的二维,并进行跟踪统计。 通过以上功能的实现,PHP微信小程序公益代可以帮助组织和用户更方便地参与公益事业,提高公益活动的效率和影响力。同时,PHP还可以处理用户的反馈和留言,促进公益活动的改进和优化。 ### 回答2: PHP微信小程序公益代可以通过后开发来实现。 首先,需要与微信小程序进行交互,可以使用PHP的开源框架Laravel或者ThinkPHP来搭建后台服务器。这些框架提供了与微信服务器进行通信的功能,可以接收并解析来自小程序的请求。 其次,需要设计数据库来存储公益信息。可以使用MySQL或者MongoDB等数据库来存储公益项目的相关信息,例如项目名称、发起人、捐赠目标金额等。 接着,通过PHP编写逻辑代实现公益功能。例如,可以编写发布公益项目的代,包括创建新的公益项目并将其保存到数据库中。还可以编写捐赠功能的代,包括根据用户选择进行捐赠、计算捐赠进度等。 另外,还可以编写一些辅助功能的代,例如用户登录验证、参与公益项目的人数统计等。 最后,为了使小程序能够与后台服务器进行通信,还需要在小程序编写与后台服务器交互的代。可以通过调用微信小程序提供的API来发送请求,并根据请求结果来展示公益项目的信息。 总结来说,PHP微信小程序公益代主要涉及与微信服务器的交互、数据库设计与操作以及编写具体的公益功能代。通过这些步骤,可以实现一个完善的PHP微信小程序公益项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值