ホームページ  >  記事  >  バックエンド開発  >  PHP WeChat パブリック プラットフォーム開発クラスの例_PHP チュートリアル

PHP WeChat パブリック プラットフォーム開発クラスの例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:58:32927ブラウズ

php WeChat パブリック プラットフォーム開発クラスの例

ThinkWechat.php クラス ファイルは次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

クラス微信{

/**

* WeChat によってプッシュされたデータまたは応答データ

* @var 配列

*/

プライベート $data = array();

/**

* WeChat SDK をインスタンス化するために使用される構築メソッド

* @param string $token WeChat オープン プラットフォームによって設定されたトークン

*/

パブリック関数 __construct($token) {

$this->auth($token) || 終了;

if(!empty($_GET['echostr'])){

終了($_GET['echostr']);

} 他 {

試してみる

{

$xml = file_get_contents("php://input");

$xml = 新しい SimpleXMLElement($xml);

$xml || 終了;

foreach ($xml as $key => $value) {

$this->data[$key] = strval($value);

}

}キャッチ(例外 $e){

}

}

}

/**

* WeChat によってプッシュされたデータを取得します

* @return array 配列に変換されたデータ

*/

パブリック関数リクエスト(){

$this->データを返す;

}

/**

* * WeChatで送信されたメッセージに返信します(自動返信)

* @param string $to はユーザー名を受け取ります

* @param string $from 送信者のユーザー名

* @param 配列 $content 返信情報、テキスト情報は文字列型です

* @param string $type メッセージタイプ

* @param string $flag 新しい標準が情報を受け取ったばかりかどうか

* @return string XML 文字列

*/

パブリック関数response($content, $type = 'text', $flag = 0){

/* 基本データ */

$this->data = array(

'ToUserName' => $this->data['FromUserName'],

'FromUserName' => $this->data['ToUserName'],

'CreateTime' => time(),

'MsgType' => $type,

);

/* 型データを追加 */

$this->$type($content);

/* ステータスを追加 */

$this->data['FuncFlag'] = $flag;

/* データを XML に変換します */

$xml = 新しい SimpleXMLElement('');

$this->data2xml($xml, $this->data);

exit($xml->asXML());

}

/**

* テキストメッセージに返信します

* @param string $content 返信するメッセージ

*/

プライベート関数テキスト($content){

$this->data['コンテンツ'] = $content;

}

/**

* 音楽メッセージに返信

* @param string $content 返信する音楽

*/

プライベート関数ミュージック($music){

リスト(

$音楽['タイトル']、

$music['説明'],

$music['MusicUrl'],

$音楽['HQMusicUrl']

) = $music;

$this->data['音楽'] = $music;

}

/**

* テキストメッセージと画像メッセージに返信します

* @param string $news 返信されるグラフィックとテキストのコンテンツ

*/

プライベート機能ニュース($news){

$articles = array();

foreach ($news as $key => $value) {

リスト(

$articles[$key]['タイトル'],

$articles[$key]['説明'],

$articles[$key]['PicUrl'],

$articles[$key]['URL']

) = $value;

if($key >= 9) { Break } //最大 10 件のニュース更新のみが許可されます

}

$this->data['ArticleCount'] = count($articles);

$this->data['Articles'] = $articles;

}

/**

* データ XML エンコーディング

* @param オブジェクト $xml XML オブジェクト

* @param 混合 $data データ

* @param string $item 数値インデックスのノード名

* @戻り文字列

*/

プライベート関数 data2xml($xml, $data, $item = 'item') {

foreach ($data as $key => $value) {

/* デフォルトの数字キーを指定します */

is_numeric($key) && $key = $item;

/* 子要素を追加 */

if(is_array($value) || is_object($value)){

$child = $xml->addChild($key);

$this->data2xml($child, $value, $item);

} 他 {

if(is_numeric($value)){

$child = $xml->addChild($key, $value);

} 他 {

$child = $xml->addChild($key);

$node = dom_import_simplexml($child);

$node->appendChild($node->ownerDocument->createCDATASection($value));

}

}

}

}

/**

* データの署名認証を実行して、WeChat によって送信されたデータであることを確認します

* @param string $token WeChat オープン プラットフォームによって設定されたトークン

* @return boolean true-signature は正しく、false-signature は間違っています

*/

プライベート関数認証($token){

if(empty($_GET['signature'])) return;

/* データを取得 */

$data = array($_GET['timestamp'], $_GET['nonce'], $token);

$sign = $_GET['署名'];

/* 辞書がデータを並べ替える */

ソート($data,SORT_STRING);

/* 署名を生成 */

$signature = sha1(implode($data));

return $signature === $sign;

}

}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/977616.html技術記事 PHP WeChat パブリック プラットフォーム開発クラスの例 ThinkWechat.php クラス ファイルは次のとおりです: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。