【移動應(yīng)用開發(fā)技術(shù)】怎么實現(xiàn)小程序推送模板消息_第1頁
【移動應(yīng)用開發(fā)技術(shù)】怎么實現(xiàn)小程序推送模板消息_第2頁
【移動應(yīng)用開發(fā)技術(shù)】怎么實現(xiàn)小程序推送模板消息_第3頁
【移動應(yīng)用開發(fā)技術(shù)】怎么實現(xiàn)小程序推送模板消息_第4頁
【移動應(yīng)用開發(fā)技術(shù)】怎么實現(xiàn)小程序推送模板消息_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論