ヒント:
マイクロチャネルプッシュメッセージテンプレートのマイクロチャネルは最後まで行かなければならない、提供された構成テンプレート、対応するメッセージ・テンプレートIDを生成し、文字の文字列は、マイクロチャネル側に渡される必要なパラメータデータと一緒に、覚えておいてください!〜
サービスモジュールの責任コードに必要なパラメータ、準備マイクロチャネル側の本体部:第一部
/ **
*注文がユーザ側プッシュマイクロチャネル[注文完了情報]で完了した後
* @param INT $受注注文ID
* @returnミックス
* /
パブリック関数order_complete_wx_notice($受注)
{
//の$ this - > write_log([ ' order_cmp '=> 1、。' $受注「=> $受注]);
IF($受注){
//受注によって提示されるテンプレート情報を取得
$ order_info =の$ this - > get_template_info($受注,. 3);
// this- $> write_log([ 'order_cmp' => 2、 'order_info' => $ order_info]);
IF($ order_info){
//テンプレートデータ
$リクエスト= [];
$要求[ 'TOUSER'] $ = order_info [「OpenIDの」];
$要求[ 'TEMPLATE_ID'] = '84Muc5Er_gyddmU1sdfdXSssssdAvW93kI';//メッセージテンプレートIDを完了するために
$要求[「ページ」] =「ページおよび/近/インデックス」; //ジャンプページテンプレートのカードをクリックしてください
$リクエストは[ 'form_id'] = $ order_info [ 'prepay_id']; // ID この有料の
$要求[ 'データ'] = [
'KEYWORD1' => [ '値' => $ order_info [ 'COURSE_NAME'] ]、//コース名
'KEYWORD2' => [ '値 ' => $ order_info [ 'order_complete_time']]、// 完了時間
'KEYWORD3' => [ '値 ' => $ order_info [ 'gym_name']]、 //ストアルーム名
'keyword4' => [ '値 ' => $ order_info [ 'アドレス']]、// ストアアドレス
'keyword5' => [ '値 ' => ' 完了']、//注文状況
'keyword6' => [ '値 ' => '400-010-88888']、// 顧客サービスの電話
'keyword7'=> [ '値' => 'ご注文は、この時間を完了している、してくださいコール顧客サービス、貴重なアドバイスああ!']、//ヒント
];
// $要求[ 'emphasis_keyword'] = 'keyword5.DATA' ; //テンプレート増幅キーワード
//ます$ this-> write_log([ 'order_cmp' => 3 '要求' => $を要求。]);
//送信データ
の$ this - > wx_show_template($要求);
}
}
}
/ **
表示順序により取得*テンプレートID情報
* @param INT $ ID順のID($タイプ= 2)||注文ID($タイプ= 3タイプ= $ 1か)の
タイプ、支払成功の* @param int型$ 2; 3、注文が完了しています。
@return配列*
* /
パブリック関数get_template_info($ ID、$タイプ)
{
IF(ID && $ $型){
の$ this - >荷重- > DAO( 'order_dao');
戻りの$ this - > order_dao-> get_template_info( ID $、$型);
}
}
パートII:マイクロチャネルの調製端へのデータ送信を担当して、マイクロチャネル、マイクロチャネルのプッシュは、ユーザにメッセージ・テンプレートを与えます
/ **
*データを送信するマイクロチャネルの端部に、ディスプレイインターフェイステンプレート
* @paramの$要求アレイ
* /
パブリック関数wx_show_template($要求)
{
//値はredis_access_token Redisの取得
$ access_tokenは=の$ this - > get_redis_access_token();
IF( !$ access_tokenは){
マイクロチャネルの端から取得//
; $ access_tokenは=の$ this - > get_access_token()
//取得へのRedisの
$ this-> load-> libraryメソッド( 'dbredis');
の$ this - > dbredis-> SET ( 'redis_access_token'、access_tokenは$);
}
IF(!access_tokenは$){
出口( 'access_tokenは悪い「!);
}
//送信アドレス
$ URL =' https://api.weixin.qq.com/cgi-ビン/メッセージ/ wxopen /テンプレート/センド?access_tokenは=」。$ access_tokenは、
//リクエストマイクロチャネル、マイクロチャネル側の表示テンプレート
の$ this - > curl_post_weixin(URL $、$リクエスト);
}
/ **
* cURLのPOSTデータマイクロチャネルモードへ
* @param文字列$ URL要求アドレス
* @param配列$データ伝送データ
* /
パブリック関数curl_post_weixin($ URL、$データ)
{
IF($ URL && COUNT($データ)){
$ヘッダー= [ 'のContent-Type:ファイルアプリケーション/ JSON'];
$ CH = curl_init();
ますcurl_setopt($ CH 、CURLOPT_HTTPHEADER、$ヘッダ); //キーポイント
ますcurl_setopt($ CH、CURLOPT_URL、$ URL);
ますcurl_setopt($ CH、CURLOPT_RETURNTRANSFER、1);
ますcurl_setopt($ CH、CURLOPT_POST、1);
ますcurl_setopt($ CH、CURLOPT_POSTFIELDS、json_encode ($データ));
curl_exec($ CH);
curl_close($ CH);
}
}
/ **
* access_tokenは値を取得する
文字列$ access_tokenは@return *
* /
パブリックget_access_token関数()
{
$のAppConfig = [
'APP_ID' => 'wxsdd9asdfghe5efc'、
'秘密' => 'ec1879wiujhyytbdt786ddb7d29106'
];
$ URL = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appConfig['app_id'].'&secret='.$appConfig['secret'] ;
$ curl_init CH =(); //ハンドルを作成
しますcurl_setopt($ chの、CURLOPT_URL、$ URLを); // データのURLを取得
しますcurl_setoptを($ CH、CURLOPT_RETURNTRANSFER ,. 1);ストリームファイルとして取得//戻り情報
ますcurl_setopt($ chの、CURLOPT_SSL_VERIFYPEER、偽); //検証証明書をスキップ
ますcurl_setopt($ chの、CURLOPT_SSL_VERIFYHOST、偽 ); // SSL暗号化証明書をチェックしている
$ = json_decodeの出力(curl_exec(CH $));
$ $出力- access_tokenは=> access_tokenは、
curl_close($ CH);
リターンがaccess_tokenはを$ ;
}
締結:
微信テンプレートメッセージプッシュ、キーポイントは、対応するテンプレートを形成するために、マイクロチャネル側の構成に移動することで、生成されたテンプレートIDは、次に、パラメータを用意することで、データ転送後、マイクロチャネル・クライアントは、OpenIDのベース、メッセージカール機能を受信しますマイクロのユーザの(モバイル)通信端末に対応するメッセージをプッシュ!