WeChat ミニ プログラム API はメッセージとイベントを受信します


メッセージとイベントを受信します


ページ上で<contact-button/>を使用して、カスタマーサービスセッションに入るボタンを表示します。

ユーザーがカスタマー サービス セッションでメッセージを送信する (または特定のユーザー操作によって引き起こされるイベントをプッシュする) と、WeChat サーバーは、メッセージ (またはイベント) パケット (JSON または XML 形式) を、開発者。 。リクエストを受信した後、開発者はカスタマー サービス メッセージ インターフェイスを使用して非同期に応答できます。

WeChat サーバーがユーザーのメッセージをミニ プログラムの開発者サーバー アドレス (開発設定で構成) に送信した後、WeChat サーバーが 5 秒以内に応答を受信しない場合、WeChat サーバーは切断されてリクエストを再開始し、3 回再試行します。デバッグ中にユーザーが応答メッセージを受信できないことが判明した場合は、メッセージ処理がタイムアウトしたかどうかを確認できます。再試行メッセージの重複排除に関しては、msgid を使用してメッセージを重複排除することをお勧めします。重複を排除するために、イベント タイプのメッセージには FromUserName + CreateTime を使用することをお勧めします。

サーバーがリクエストを受信し、#カスタマーサービスツールに転送する必要がない場合#は、WeChatサーバーがそれに対して何もせず、再試行を開始しないように、次の応答を行う必要があります。 、重大なエラー メッセージが表示されます。詳細については、以下の手順を参照してください:

1、直接回复success(推荐方式)
2、直接回复空串(指字节长度为0的空字符串,而不是结构体中content字段的内容为空)

次の状況が発生すると、WeChat はミニ プログラム セッションでユーザーにシステム プロンプトを発行します。「このミニ プログラム カスタマー サービスは一時的にサービスを提供できません。後でもう一度お試しください。」:

1、开发者在5秒内未回复任何内容
2、开发者回复了异常数据

開発された場合 メッセージまたはイベントをカスタマー サービス ツールに転送する場合は、「カスタマー サービス ツールへのメッセージの転送」を参照してください。カスタマー サービス ツールにアクセスするには、カスタマー サービス ツールの手順を参照してください

開発者がセキュリティを強化したい場合は、開発者センターでメッセージの暗号化を有効にすることができます。これにより、ユーザーがミニ プログラムに送信するメッセージと、ミニ プログラムへの受動的な返信が暗号化されます。ミニ プログラムによるユーザー メッセージは引き続き暗号化されます。詳細については、「メッセージの暗号化と復号化の手順」を参照してください。

各メッセージタイプのプッシュJSONおよびXMLデータパケット構造は次のとおりです。

テキストメッセージ

ユーザーがカスタマーサービスセッションでテキストメッセージを送信すると、次のデータパケットが生成されます:

XML形式

<xml>
   <ToUserName><![CDATA[toUser]]></ToUserName>
   <FromUserName><![CDATA[fromUser]]></FromUserName>
   <CreateTime>1482048670</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[this is a test]]></Content>
   <MsgId>1234567890123456</MsgId>
</xml>

JSON形式

{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "text",
    "Content": "this is a test",
    "MsgId": 1234567890123456
}

パラメータの説明

201609261355055576.pngQQ截图20170208152517.png

画像メッセージ

カスタマーサービスセッション中のユーザー 画像メッセージを送信すると、次のデータパケットが生成されます:

XML形式

<xml>
      <ToUserName><![CDATA[toUser]]></ToUserName>
      <FromUserName><![CDATA[fromUser]]></FromUserName>
      <CreateTime>1482048670</CreateTime>
      <MsgType><![CDATA[image]]></MsgType>
      <PicUrl><![CDATA[this is a url]]></PicUrl>
      <MediaId><![CDATA[media_id]]></MediaId>
      <MsgId>1234567890123456</MsgId>
</xml>

JSON形式

{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "image",
    "PicUrl": "this is a url",
    "MediaId": "media_id",
    "MsgId": 1234567890123456
}

パラメータの説明

QQ截图20170208152543.png

セッションイベントを入力

ユーザーがミニ プログラム「カスタマー サービス セッション ボタン」を介してカスタマー サービス セッションを実行すると、次のデータ パッケージが生成されます:

XML形式

<xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>  
    <FromUserName><![CDATA[fromUser]]></FromUserName>  
    <CreateTime>1482048670</CreateTime>  
    <MsgType><![CDATA[event]]></MsgType>  
    <Event><![CDATA[user_enter_tempsession]]></Event>  
    <SessionFrom><![CDATA[sessionFrom]]></SessionFrom> 
</xml>

JSON形式

{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "event",
    "Event": "user_enter_tempsession",
    "SessionFrom": "sessionFrom"
}

パラメータの説明

QQ截图20170208152556.png

メッセージをカスタマーサービスツールに転送します

開発者がメッセージを処理のためにカスタマーサービスツールに転送することを希望する場合は、応答パッケージを返してください以下の構造によると。応答パケットのデータ形式(XMLまたはJSON)は、受信メッセージの設定データ形式と一致している必要があります。

XML形式
<xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>
    <FromUserName><![CDATA[fromUser]]></FromUserName>
    <CreateTime>1482048670</CreateTime>
    <MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>
JSON形式
{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "transfer_customer_service",
}
パラメータの説明

QQ截图20170208152611.png