laravel 5を使用する.4 easywechatと組み合わせた微信開発--QRコードシーン使用
現在、2種類のQRコードがあります.
1-一時的なQRコード:
有効期限はありますが、最大でQRコード生成後30日後に有効期限が切れるように設定できますが、より多くの数を生成できます.
一時的なQRコードは、主にアカウントバインドなど、QRコードの永続的な保存を必要としないビジネスシーンに使用されます.
2-永続QRコード:
有効期限はありませんが、数は少ない(現在は最大10万個).永続的なQRコードは、主にアカウントバインド、ユーザーソース統計などのシーンに適用されます.
ユーザがシーン値付きQRコードをスキャンすると、次の2つのイベントがプッシュされます.
ユーザーがまだ公衆番号に注目していない場合、ユーザーは公衆番号に注目することができ、注目した後、微信はシーン値付きの注目イベントを開発者にプッシュする.
ユーザーが公衆番号に注目している場合、ユーザーがスキャンした後に自動的にセッションに入ると、微信はシーン値スキャンイベントを開発者にプッシュします.
詳細については、公式ドキュメントを参照してください.https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
ご存知のように、ユーザーがスキャンや公衆番号にメッセージを送信したり操作したりすると、サーバは対応するXMLデータを受信します.
しかし、QRコードをスキャンすると、XMLにはシーン価値フィールド情報が含まれます.
以上の場合、easywechatと組み合わせて、以下を使用します.
シーン値は文字列、または整数で指定できます.
または、次のようにしてシーン値を取得します.
1-一時的なQRコード:
有効期限はありますが、最大でQRコード生成後30日後に有効期限が切れるように設定できますが、より多くの数を生成できます.
一時的なQRコードは、主にアカウントバインドなど、QRコードの永続的な保存を必要としないビジネスシーンに使用されます.
2-永続QRコード:
有効期限はありませんが、数は少ない(現在は最大10万個).永続的なQRコードは、主にアカウントバインド、ユーザーソース統計などのシーンに適用されます.
ユーザがシーン値付きQRコードをスキャンすると、次の2つのイベントがプッシュされます.
ユーザーがまだ公衆番号に注目していない場合、ユーザーは公衆番号に注目することができ、注目した後、微信はシーン値付きの注目イベントを開発者にプッシュする.
ユーザーが公衆番号に注目している場合、ユーザーがスキャンした後に自動的にセッションに入ると、微信はシーン値スキャンイベントを開発者にプッシュします.
詳細については、公式ドキュメントを参照してください.https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1443433542
ご存知のように、ユーザーがスキャンや公衆番号にメッセージを送信したり操作したりすると、サーバは対応するXMLデータを受信します.
しかし、QRコードをスキャンすると、XMLにはシーン価値フィールド情報が含まれます.
ToUserName
FromUserName ( OpenID)
CreateTime ( )
MsgType ,event
Event ,subscribe
EventKey KEY ,qrscene_ ,
Ticket ticket,
以上の場合、easywechatと組み合わせて、以下を使用します.
シーン値は文字列、または整数で指定できます.
scene_id ID, 32 0 , 100000( 1--100000)
scene_str ID( ID), , 1 64
$result = $app->qrcode->temporary('foo', 6 * 24 * 3600);
// ,'foo' ,6 * 24 * 3600 6 , , 30 , 30
// $result
// (
// [ticket] => gQFD8TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyTmFjVTRWU3ViUE8xR1N4ajFwMWsAAgS2uItZAwQA6QcA
// [expire_seconds] => 518400
// [url] => http://weixin.qq.com/q/02NacU4VSubPO1GSxj1p1k
// )
//
$result = $app->qrcode->forever(56);// $app->qrcode->forever("foo");
// Array
// (
// [ticket] => gQFD8TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyTmFjVTRWU3ViUE8xR1N4ajFwMWsAAgS2uItZAwQA6QcA
// [url] => http://weixin.qq.com/q/02NacU4VSubPO1GSxj1p1k
// )
// ticket
$url = $app->qrcode->url($ticket);
//$url = https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQEp8jwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAydjRMZ05IdDVjRjAxMDAwMDAwM1cAAgTquLRaAwQAAAAA
// , ,
$content = file_get_contents($url); //
file_put_contents(__DIR__ . '/code.jpg', $content); //
, :
$app = app('wechat.official_account');
$app->server->push(function($message){
return $message['EventKey'];// ,
});
return $app->server->serve();
または、次のようにしてシーン値を取得します.
$app = app('wechat.official_account');
$msg = $app->server->getMessage();
$app->server->push(function($message) use ($msg){
return $msg['EventKey'];
});
return $app->server->serve();