EコマースAPI(Payments API)でJCBが正常終了してしまった?

当店で使用しているPayments APIを利用した決済で、

JCBカードを誤って入力されたお客様の決済が、システム上「正常決済」となって、支払い完了の状態になってしまったもようです。

もちろん、実際には資金は動いておらず、Squareデータの画面上も売り上げは立っておりません。

 

現在当店でも状況確認中で、お客様にもご説明し他の決済をご案内していますが、

SqPaymentForm

https://developer.squareup.com/docs/payment-form/payment-form-walkthrough

が、JCBのカードに対してnonceを正常に発行し、

そのうえで

このnonceをPHPで受けて決済する際に

 try()がexceptionを出さずに正常終了しているようです。

https://github.com/square/connect-api-examples/tree/master/connect-examples/v2/php_payment

 

全体の実装は次のようにしております。

https://curio-shiki.com/blog/webpage/square-api-payment

 

自分がJCBを持っていないので確認しようがなく困っているのですが、

以上のような動作をしていることはほぼ間違いないようです。

・これは仕様でしょうか?

・それとも不具合でしょうか?

・それとも、try()成功時もResponseを見ないといけなかったんでしょうか?

・それとも、その他の原因と対処がありますでしょうか?

 

分かる方いらっしゃいましたらご教示いただけますと助かります。

1,470件の閲覧回数
メッセージ1/3
不適切なコンテンツを報告
1 Bベストアンサー
Admin

ベストアンサー
SQ大竹-Otake
ベータマネージャー, Square
ベータコミュニティに参加しよう !
ベータに参加して、Square製品をより良いものにしませんか?

ベストアンサーを見る >

1,434件の閲覧回数
メッセージ2/3
不適切なコンテンツを報告
2 返信
Admin

ベストアンサー
SQ大竹-Otake
ベータマネージャー, Square
ベータコミュニティに参加しよう !
ベータに参加して、Square製品をより良いものにしませんか?
1,435件の閲覧回数
メッセージ2/3
不適切なコンテンツを報告

ありがとうございました。大変助かりました。

回答をもとに検索して、概要を確認させていただきました。

https://developer.squareup.com/docs/api/connect/v2#endpoint-payments-createpayment

 

Response fields

errors  Error[]

Information on errors encountered during the request.

payment  Payment

The newly created payment.

 

TransactionsAPIのときのように、Protectedとは書いてないですね。だとすれば

if(response['payment']{

      <支払い完了処理>

} else {

     <支払いエラー処理>

}

でいけそうですね。

 

SqPaymentForm が、単純なカード番号誤りははじいているようでしたし、

PHPのサンプルコードも、エラートラップまではいっていませんでしたので、

SqPaymentFormの段階ですべてエラーははじかれるのかなと思っていましたが、そうではないのですね。

 

わざわざご確認いただきありがとうございました。

1,430件の閲覧回数
メッセージ3/3
不適切なコンテンツを報告