- RSS フィードを購読する
- トピックを新着としてマーク
- トピックを既読としてマーク
- このスレッドを現在のユーザーにフロートします
- ブックマーク
- 購読
- 印刷用ページ
当店で使用している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を見ないといけなかったんでしょうか?
・それとも、その他の原因と対処がありますでしょうか?
分かる方いらっしゃいましたらご教示いただけますと助かります。
- 新着としてマーク
- ブックマーク
- 購読
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
ログを確認した所、こちらは下記のようなエラーログとなっていたとのことでした。
response=errors { code:
MANUALLY_ENTERED_PAYMENT_NOT_SUPPORTED detail:
"Authorization error:
\'MANUALLY_ENTERED_PAYMENT_NOT_SUPPORTED\'" category:
PAYMENT_METHOD_ERROR }
どの言語を使っているかによりますが、responseには、
payment
か errors
のどちらかが入っています。 $response["payment"]
か $response["errors"]
のどちらかになります。- 新着としてマーク
- ブックマーク
- 購読
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
ログを確認した所、こちらは下記のようなエラーログとなっていたとのことでした。
response=errors { code:
MANUALLY_ENTERED_PAYMENT_NOT_SUPPORTED detail:
"Authorization error:
\'MANUALLY_ENTERED_PAYMENT_NOT_SUPPORTED\'" category:
PAYMENT_METHOD_ERROR }
どの言語を使っているかによりますが、responseには、
payment
か errors
のどちらかが入っています。 $response["payment"]
か $response["errors"]
のどちらかになります。- 新着としてマーク
- ブックマーク
- 購読
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
ありがとうございました。大変助かりました。
回答をもとに検索して、概要を確認させていただきました。
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の段階ですべてエラーははじかれるのかなと思っていましたが、そうではないのですね。
わざわざご確認いただきありがとうございました。
- 新着としてマーク
- ブックマーク
- 購読
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告