下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】怎么實現(xiàn)小程序推送模板消息
這篇文章主要介紹怎么實現(xiàn)小程序推送模板消息,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!如何實現(xiàn)小程序推送模板消息?以下為開發(fā)步驟獲取用戶的openid獲取form_id或者prepay_id獲取access_token發(fā)送模板消息DEMO下載地址重要提示此方法為利用PHP內(nèi)置curl模塊發(fā)送請求,開發(fā)中都是以此方法訪問微信服務(wù)器獲取數(shù)據(jù),其中url為接口地址,params為攜帶參數(shù),ispost為請求方式,https為證書校驗
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);
//
對認證證書來源的檢查
curl_setopt($ch,
CURLOPT_SSL_VERIFYHOST,
FALSE);
//
從證書中檢查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;
}獲取用戶的openid微信小程序代碼,建議放在app.js全局保存,方便調(diào)用wx.login({
success:
function
(res)
{
wx.request({
url:
"",
//你的服務(wù)器接口地址
data:
{
code:res.code
//通過wx.login獲取code發(fā)送至服務(wù)器
},
header:
{
'content-type':
'application/json'
},
success:
function
(res)
{
that.globalData.OpenId=res.data.openid
//存儲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本篇只做簡要介紹,留到下篇博客微信支付講解1.form_id為小程序內(nèi)提交表單時所產(chǎn)生的id,當(dāng)用戶在小程序內(nèi)發(fā)生過提交表單行為且該表單聲明為要發(fā)模板消息的,開發(fā)者需要向用戶提供服務(wù)時,可允許開發(fā)者向用戶在7天內(nèi)推送有限條數(shù)的模板消息(1次提交表單可下發(fā)1條,多次提交下發(fā)條數(shù)獨立,相互不影響)2.prepay_id為小程序拉起微信支付時所產(chǎn)生的預(yù)支付id,當(dāng)用戶在小程序內(nèi)完成過支付行為,可允許開發(fā)者向用戶在7天內(nèi)推送有限條數(shù)的模板消息(1次支付可下發(fā)3條,多次支付下發(fā)條數(shù)獨立,互相不影響)獲取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");
//查詢緩存中是否已存在access_token
if($access_token==""){
$access_token=json_decode(self::curl($Url))->{"access_token"};
//訪問接口獲取access_token
Cache::put("access_token",$access_token,120);
//設(shè)置緩存,過期時間2小時
}
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));
//訪問接口,返回參數(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,
//接收用戶的openid
"template_id"=>"k03-Sk5c4eNlQKrS4VqI4cKjEil7JyvcouxtKBFkVcs",
//模板id
"page"=>"pages/index/index",//點擊模板消息跳轉(zhuǎn)至小程序的頁面
"form_id"=>$form_id,
//可為表單提交時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"=>
"請至小程序訂單列表進行查看",//自定義參數(shù)
"color"=>
'#173177'//自定義文字顏色
],
]
];
$res=WxUtils::SendMsg($data,$access_token);
//返回結(jié)果
}總結(jié)1.openid獲取挺簡單的,就
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)退休技術(shù)人員返聘技術(shù)合作協(xié)議
- 鞍山八年級上冊數(shù)學(xué)試卷
- 2025年度3D建模設(shè)計師勞動合同升級版
- 2025年度貸款中介服務(wù)收費標(biāo)準(zhǔn)及傭金合同
- 2025年度住宅裝修質(zhì)量驗收標(biāo)準(zhǔn)合同
- 2025年度電商虛擬商品代運營與數(shù)字貨幣合作框架協(xié)議
- 二零二五年度水稻繁殖產(chǎn)業(yè)人才引進與培養(yǎng)合同
- 2025年度新能源車庫租賃及轉(zhuǎn)讓一體化合同
- 二零二五年度物流園區(qū)車位購置及倉儲服務(wù)合同范本
- 水生和沉生植物施工方案
- 2025年長沙穗城軌道交通有限公司招聘筆試參考題庫含答案解析
- 人教版物理八年級下冊 專項訓(xùn)練卷 (一)力、運動和力(含答案)
- 山東省房屋市政工程安全監(jiān)督機構(gòu)人員業(yè)務(wù)能力考試題庫-中(多選題)
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024年中考語文滿分作文6篇(含題目)
- 北師大版 2024-2025學(xué)年四年級數(shù)學(xué)上冊典型例題系列第三單元:行程問題“拓展型”專項練習(xí)(原卷版+解析)
- 2023年譯林版英語五年級下冊Units-1-2單元測試卷-含答案
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
評論
0/150
提交評論