QR決済結果をコールバックできるか?/決済結果を別システムに通知することは可能か?

2回目の質問となります。よろしくお願いします!

前回は、「定額webサービス用に払い出したQR決済コードって、使いまわせるの?誰が決済したのか、また、カスタム入力項目って必須になるの?」という質問でした。

早々に回答いただいた方々に、厚く御礼申し上げますm(__)m

おかげ様で、ビジネスも軌道に乗り始めてきました。

 

さて、今回はもうちょっと進んだ質問になります。

特殊なことをしているかもしれませんが、実現するための知識やアイデアがあれば、ぜひ教えて頂きたいと思います。

 

弊社、不特定多数のエンドユーザー様向けに、webサービスを提供しております。

このwebサービスは、Square上で発行したリンクコードで決済を済ませた人しか使えないようなものになっています。

 

そして現運用は、

 

①エンドユーザ様がSquareのリンクコードで決済を実行する。

②弊社の担当者がSquare管理画面上で決済内容を確認する。

③決済者と弊社のアカウントを人力で紐づけて、弊社システムに決済日を入力する。

④弊社システムでは、最後の決済日からN日後まで、webサービスを利用できるようになっている。

 

という動きになっておりまして、①から③までに人力が発生しております影響で、エンドユーザは決済を終えてからwebサービスを使えるまでに「待ち」が発生してしまっております。

今回の質問では、これを解消するような仕組みがSquareにあるかどうか?を確認したくて起票させていただきました。

 

例えば、リンクコード決済のURLに、特殊なパラメタを付与することで、決済結果をコールバックのように別システムに通知できる。とかがあれば便利だなぁと思ったのです。

★具体例:

リンクコード ://square.link/u/YB8gXXXX 

このリンクコードを少し細工して、 ://square.link/u/YB8gXXXX?callback=https://xxx.xxx.jp/payment/callback?userid=abc123&planid=1 

みたいにしたときに、無事に決済が通ると(通らなくても)、callbackに指定されたURLが呼ばれるなどです。

 

もしこれが実現できれば、決済と同時にコールバック先に決済完了通知が届くので、エンドユーザはすぐにwebサービスを開始できると考えました。

 

コールバックに限らず、こういった「決済結果を外部に通知する仕組み」があれば何でもいいと思っているのですが、こういったことは可能なのでしょうか?

 

皆様の知識と知恵をお貸しください。

よろしくお願いします!

279件の閲覧回数
メッセージ1/4
不適切なコンテンツを報告
1 解決策
解決策

お世話になっております。

先日質問させていただいた、Squareの決済結果を自社システムへ自動連携する方法について、無事に解決しましたのでご報告します。

やりたかったこと

これまでは、クライアントがSquareで決済した後、翌営業日にSquareの管理画面を確認し、決済内容を自社システムへ手動で登録していました。

そのため、休日や年末年始などは決済からシステムへの反映まで数日空いてしまうという問題がありました。

解決方法

SquareのWebhookを利用することで解決できました。

Squareには決済関連のWebhookイベントとして、

  • payment.updated

  • order.updated

などがあります。

今回必要だったのは payment.updated です。

payment.updated のWebhookを自社サーバーで受信し、通知されたPaymentのステータスを確認します。

payment.updated
        ↓
status == "COMPLETED"
        ↓
決済完了と判断
        ↓
自社システムへ決済履歴を登録
        ↓
有料プランを自動的に有効化

なお、Squareには payment.completed というWebhookイベントはありません。

payment.updated を購読し、その中の status が COMPLETED になったことを確認するのがポイントでした。

これにより、Squareで決済が完了すると、自社システムへほぼリアルタイムで決済情報を反映できるようになりました。

今まで手作業で行っていたSquare管理画面の確認と決済履歴の登録が不要になり、当初の問題を解決することができました。

ご回答・アドバイスいただいた皆様、ありがとうございました!

解決策を見る >

106件の閲覧回数
メッセージ4/4
不適切なコンテンツを報告
3 返信

@なべを さん、ご質問ありがとうございます。

 

他のAPI利用者から回答が得られやすい、開発者用コミュニティもぜひご活用ください:Square Developer Forum

 

◆開発者向けリソース・サポート

間宮 −Mamiya
Square コミュニティ管理者
解決策や有用な回答には、ログイン して ベストアンサーとしてマークをクリックしましょう!
273件の閲覧回数
メッセージ2/4
不適切なコンテンツを報告

@Square間宮-Mamiya 

コメントありがとうございます!開発者コミュニティにも投稿してみます。

mamiya様の方では、お分かりになることはありませんか?あるいは過去事例ですとか。

 

240件の閲覧回数
メッセージ3/4
不適切なコンテンツを報告
解決策

お世話になっております。

先日質問させていただいた、Squareの決済結果を自社システムへ自動連携する方法について、無事に解決しましたのでご報告します。

やりたかったこと

これまでは、クライアントがSquareで決済した後、翌営業日にSquareの管理画面を確認し、決済内容を自社システムへ手動で登録していました。

そのため、休日や年末年始などは決済からシステムへの反映まで数日空いてしまうという問題がありました。

解決方法

SquareのWebhookを利用することで解決できました。

Squareには決済関連のWebhookイベントとして、

  • payment.updated

  • order.updated

などがあります。

今回必要だったのは payment.updated です。

payment.updated のWebhookを自社サーバーで受信し、通知されたPaymentのステータスを確認します。

payment.updated
        ↓
status == "COMPLETED"
        ↓
決済完了と判断
        ↓
自社システムへ決済履歴を登録
        ↓
有料プランを自動的に有効化

なお、Squareには payment.completed というWebhookイベントはありません。

payment.updated を購読し、その中の status が COMPLETED になったことを確認するのがポイントでした。

これにより、Squareで決済が完了すると、自社システムへほぼリアルタイムで決済情報を反映できるようになりました。

今まで手作業で行っていたSquare管理画面の確認と決済履歴の登録が不要になり、当初の問題を解決することができました。

ご回答・アドバイスいただいた皆様、ありがとうございました!

107件の閲覧回数
メッセージ4/4
不適切なコンテンツを報告