決済フロー部分の改善をちょっとずつ進めました。

https://tech.xcrat.biz/entry/535/

次はトークルーム上のメッセージのやり取り部分の改善です。

  • 返信メッセージが遅れる
  • 返信メッセージが一度届かなくなったら、その後にメッセージが送信されない

というようなことが、継続運用をしているうちに出てきました。
2つめの「その後・・・」はメッセージ送信で何らかのエラーとなり、その後、LINE側の接続がすべて閉じられたような感じを受ける状態でした。

送信方法が間違っていたら、最初からプログラムエラーで分かるのですが、
何がトリガーなのか?をログを見てもわからず。

が、関係者で打ち合わせをしている時に、
・ リプライトークンの有効期限切れ
じゃないか?疑惑が。

Message APIを使った実装を行っている関係者の実体験いわく、意外と短いとのこと。(リファレンスにどれくらいという明記はないのですが。)

うーむ、なるほど。
確かに、今回はwebhookでメッセージを返信する時にDB接続しての処理など、自システム内のチェック処理を経由してからメッセージすることが多く、
メッセージ送信前に意外と時間がかかっているかも・・・。

ということで、ReplyとPushが混じっていたコードをPushに統一しました。
変更自体は簡単でした。
ユーザーから送信されたメッセージを処理した時に取得するイベントの共通プロパティに含まれる”source”には、送信ユーザーのID情報が含まれているので、リプライトークンの代わりにその送信ユーザーIDを取得してセット。完了です。

現時点で返信メッセージが戻ってこないケースが発生しなくなったので、
一安心しております。

単純なメッセージ応答ではない処理を組む時には、最初からPush形式にするように実装したほうがいいかもしれませんね。

 

LINEPayの決済導入や、LINEPayのオンライン決済とシステムの連携など、お困りの方は、是非、弊社にご相談ください。

ご相談は、こちらから。