




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】怎么實(shí)現(xiàn)小程序推送模板消息
這篇文章主要介紹怎么實(shí)現(xiàn)小程序推送模板消息,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!如何實(shí)現(xiàn)小程序推送模板消息?以下為開(kāi)發(fā)步驟獲取用戶(hù)的openid獲取form_id或者prepay_id獲取access_token發(fā)送模板消息DEMO下載地址重要提示此方法為利用PHP內(nèi)置curl模塊發(fā)送請(qǐng)求,開(kāi)發(fā)中都是以此方法訪問(wèn)微信服務(wù)器獲取數(shù)據(jù),其中url為接口地址,params為攜帶參數(shù),ispost為請(qǐng)求方式,https為證書(shū)校驗(yàn)
public
static
function
curl($url,
$params
=
false,
$ispost
=
0,
$https
=
0)
{
$httpInfo
=
array();
$ch
=
curl_init();
curl_setopt($ch,
CURLOPT_HTTP_VERSION,
CURL_HTTP_VERSION_1_1);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'Content-Type:
application/json;
charset=utf-8'
)
);
curl_setopt($ch,
CURLOPT_USERAGENT,
'Mozilla/5.0
(Windows
NT
10.0;
WOW64)
AppleWebKit/537.36
(KHTML,
like
Gecko)
Chrome/41.0.2272.118
Safari/537.36');
curl_setopt($ch,
CURLOPT_CONNECTTIMEOUT,
30);
curl_setopt($ch,
CURLOPT_TIMEOUT,
30);
curl_setopt($ch,
CURLOPT_RETURNTRANSFER,
true);
if
($https)
{
curl_setopt($ch,
CURLOPT_SSL_VERIFYPEER,
FALSE);
//
對(duì)認(rèn)證證書(shū)來(lái)源的檢查
curl_setopt($ch,
CURLOPT_SSL_VERIFYHOST,
FALSE);
//
從證書(shū)中檢查SSL加密算法是否存在
}
if
($ispost)
{
curl_setopt($ch,
CURLOPT_POST,
true);
curl_setopt($ch,
CURLOPT_POSTFIELDS,
$params);
curl_setopt($ch,
CURLOPT_URL,
$url);
}
else
{
if
($params)
{
if
(is_array($params))
{
$params
=
http_build_query($params);
}
curl_setopt($ch,
CURLOPT_URL,
$url
.
'?'
.
$params);
}
else
{
curl_setopt($ch,
CURLOPT_URL,
$url);
}
}
$response
=
curl_exec($ch);
if
($response
===
FALSE)
{
return
false;
}
$httpCode
=
curl_getinfo($ch,
CURLINFO_HTTP_CODE);
$httpInfo
=
array_merge($httpInfo,
curl_getinfo($ch));
curl_close($ch);
return
$response;
}獲取用戶(hù)的openid微信小程序代碼,建議放在app.js全局保存,方便調(diào)用wx.login({
success:
function
(res)
{
wx.request({
url:
"",
//你的服務(wù)器接口地址
data:
{
code:res.code
//通過(guò)wx.login獲取code發(fā)送至服務(wù)器
},
header:
{
'content-type':
'application/json'
},
success:
function
(res)
{
that.globalData.OpenId=res.data.openid
//存儲(chǔ)openid
}
})
}
})服務(wù)器端PHP代碼,我用的是laravel框架,可自行重構(gòu)public
function
getUserInfo(Request
$request)
{
$code
=
$request->get("code");
$appid="";
//小程序appid
$secret="";
//小程序secret
$Url
=
'/sns/jscode2session?appid='
.
$appid
.
'&secret='
.
$secre
.
'&js_code='
.
$code
.
'&grant_type=authorization_code';
//微信官方給出的接口,利用小程序內(nèi)獲取的code置換openid
$UserInfo=HttpUtils::curl($Url,
$params
=
false,
$ispost
=
0,
$https
=
1);
//上文給出的curl方法
echo
$UserInfo;
//輸出結(jié)果,其中包含openid
}獲取form_id或者prepay_id本篇只做簡(jiǎn)要介紹,留到下篇博客微信支付講解1.form_id為小程序內(nèi)提交表單時(shí)所產(chǎn)生的id,當(dāng)用戶(hù)在小程序內(nèi)發(fā)生過(guò)提交表單行為且該表單聲明為要發(fā)模板消息的,開(kāi)發(fā)者需要向用戶(hù)提供服務(wù)時(shí),可允許開(kāi)發(fā)者向用戶(hù)在7天內(nèi)推送有限條數(shù)的模板消息(1次提交表單可下發(fā)1條,多次提交下發(fā)條數(shù)獨(dú)立,相互不影響)2.prepay_id為小程序拉起微信支付時(shí)所產(chǎn)生的預(yù)支付id,當(dāng)用戶(hù)在小程序內(nèi)完成過(guò)支付行為,可允許開(kāi)發(fā)者向用戶(hù)在7天內(nèi)推送有限條數(shù)的模板消息(1次支付可下發(fā)3條,多次支付下發(fā)條數(shù)獨(dú)立,互相不影響)獲取access_token此方法為獲取access_token為后續(xù)發(fā)送模板消息提供參數(shù),我用的是laravel框架,可自行重構(gòu)public
static
function
access_token(){
$appid="";
//小程序appid
$secret="";
//小程序secret
$Url="/cgi-bin/token?grant_type=client_credential&appid=".
$appid."&secret=".$secret;
//微信給出的獲取access_token的接口
$access_token=Cache::get("access_token");
//查詢(xún)緩存中是否已存在access_token
if($access_token==""){
$access_token=json_decode(self::curl($Url))->{"access_token"};
//訪問(wèn)接口獲取access_token
Cache::put("access_token",$access_token,120);
//設(shè)置緩存,過(guò)期時(shí)間2小時(shí)
}
return
$access_token;
}發(fā)送模板消息發(fā)送模板消息方法public
static
function
SendMsg($data,$access_token){
$MsgUrl="/cgi-bin/message/wxopen/template/send?access_token=".$access_token;
//微信官方接口,需要拼接access_token
return
json_decode(self::curl($MsgUrl,$params=json_encode($data),$ispost=1,$https=1));
//訪問(wèn)接口,返回參數(shù)
}調(diào)用示例public
function
test(Request
$request){
$form_id=$request->get("form_id");
$openid=$request->get("openid");
$access_token=WxUtils::access_token();
$data=[
"touser"=>$openid,
//接收用戶(hù)的openid
"template_id"=>"k03-Sk5c4eNlQKrS4VqI4cKjEil7JyvcouxtKBFkVcs",
//模板id
"page"=>"pages/index/index",//點(diǎn)擊模板消息跳轉(zhuǎn)至小程序的頁(yè)面
"form_id"=>$form_id,
//可為表單提交時(shí)form_id,也可是支付產(chǎn)生的prepay_id
"data"=>[
"keyword1"=>[
"value"=>
"五公司",
//自定義參數(shù)
"color"=>
'#173177'//自定義文字顏色
],
"keyword2"=>[
"value"=>
"保潔服務(wù)",//自定義參數(shù)
"color"=>
'#173177'//自定義文字顏色
],
"keyword3"=>[
"value"=>
"2018年10月",//自定義參數(shù)
"color"=>
'#173177'//自定義文字顏色
],
"keyword4"=>[
"value"=>
"已發(fā)布",//自定義參數(shù)
"color"=>
'#173177'//自定義文字顏色
],
"keyword5"=>[
"value"=>
"請(qǐng)至小程序訂單列表進(jìn)行查看",//自定義參數(shù)
"color"=>
'#173177'//自定義文字顏色
],
]
];
$res=WxUtils::SendMsg($data,$access_token);
//返回結(jié)果
}總結(jié)1.openid獲取挺簡(jiǎn)單的,就
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川幼兒師范高等專(zhuān)科學(xué)?!洞蟮販y(cè)量學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 晉中師范高等專(zhuān)科學(xué)校《網(wǎng)絡(luò)及其計(jì)算》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建對(duì)外經(jīng)濟(jì)貿(mào)易職業(yè)技術(shù)學(xué)院《大學(xué)生勞動(dòng)教育》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津藝術(shù)職業(yè)學(xué)院《文獻(xiàn)目錄與信息檢索》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025海南省安全員A證考試題庫(kù)及答案
- 貴州中醫(yī)藥大學(xué)時(shí)珍學(xué)院《安全經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年遼寧省七校協(xié)作體高一上學(xué)期12月月考?xì)v史試卷
- 2025江西省建筑安全員-A證考試題庫(kù)及答案
- 漯河醫(yī)學(xué)高等專(zhuān)科學(xué)校《奧林匹克文化》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧輕工職業(yè)學(xué)院《阿拉伯文學(xué)選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025-2030年園藝修剪機(jī)器人行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 2025年湖北省技能高考(建筑技術(shù)類(lèi))《建筑工程測(cè)量》模擬練習(xí)試題庫(kù)(含答案)
- 2024-2027年中國(guó)網(wǎng)絡(luò)安全評(píng)估行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略研究報(bào)告
- 失智老年人照護(hù)X證書(shū)制度試點(diǎn)工作養(yǎng)老護(hù)理職業(yè)和失智老人照護(hù)員工種的發(fā)展講解
- 2025年湖南食品藥品職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 企業(yè)數(shù)字化轉(zhuǎn)型戰(zhàn)略-深度研究
- 新種子法律法規(guī)培訓(xùn)講解
- 2025年?yáng)|營(yíng)科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 《幼小銜接家長(zhǎng)會(huì)》課件
- Unit 4 A glimpse of the future 說(shuō)課稿-2023-2024學(xué)年高二下學(xué)期英語(yǔ)外研版(2019)選擇性必修第三冊(cè)001
- 鄉(xiāng)村建設(shè)規(guī)劃許可培訓(xùn)
評(píng)論
0/150
提交評(píng)論