質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Square

Squareは独自のカードリーダーを使ってスマートフォンやタブレットにクレジットカード決済機能を提供します。レジアプリはiOS/AndroidアプリやモバイルWebサイトとAPI連携できます。その他、Webサイト向けの決済APIや商品、顧客管理APIも提供しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

3076閲覧

PHPでSquare決済をサーバ上でテストするとエラーとなる

Buddaz

総合スコア10

Square

Squareは独自のカードリーダーを使ってスマートフォンやタブレットにクレジットカード決済機能を提供します。レジアプリはiOS/AndroidアプリやモバイルWebサイトとAPI連携できます。その他、Webサイト向けの決済APIや商品、顧客管理APIも提供しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/12/20 04:36

編集2018/12/21 03:55

PHPでSquare Eコマース決済を試す
https://qiita.com/goofmint/items/c89fc7d711a665cb9d2a

上記のコードを使用し、Squareのsandbox環境でのテストを行なったところ、
ローカルサーバ上では問題なくTransactionオブジェクトのダンプが表示されましたが
リモートサーバ上ではエラーとなります。

Caught exception!
Response body:
object(stdClass)#12 (1) {
["errors"]=>
array(1) {
[0]=>
object(stdClass)#13 (3) {
["category"]=>
string(21) "INVALID_REQUEST_ERROR"
["code"]=>
string(9) "NOT_FOUND"
["detail"]=>
string(160) "Card nonce not found in this sandbox application environment. Please ensure an application ID belonging to the same environment is used to generate the nonce."
}
}
}

エラーメッセージで検索をかけてみましたが解決せず、
わかる方がいらっしゃいましたらお力添えいただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

アカウント作成時に、接続するアプリケーションのIPアドレスとか登録してるんじゃないですか?
で、リモートサーバのIPアドレスは登録してないので「IDちゃんとしろ」って怒られているのでは。

投稿2018/12/20 04:44

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Buddaz

2018/12/21 01:40

回答いただきありがとうございます! 特にアカウント/アプリケーション登録時にそのような項目はなく、 公式のドキュメントでもテストはローカルサーバで行うよう書いていたため もしかするとsandboxはローカルでしか動作しないのかもしれません。。
kunai

2018/12/25 00:58

https://docs.connect.squareup.com/testing/sandbox ↑でsandboxの使用条件(仕様制限)が書かれていますが、そこに「Sandbox support is not available for digital wallets with the Square payment form.」とありますね。 具体的なソースコードの提示がないのでわかりませんが、参考サイトを見る限りはこの制限に引っかかってる気がします。
guest

0

SquareのAPIをはじめるには、アカウント登録が必要みたいですが、お済みですか?
https://qiita.com/goofmint/items/6630a7331147b4cdf0be

あと、PHPでSquare Eコマース決済を試す
https://qiita.com/goofmint/items/c89fc7d711a665cb9d2a

にも書かれている

var applicationId = "REPLACE_ME"; // アプリケーションIDと置き換えます
var locationId = "REPLACE_ME"; // 店舗IDと置き換えます

は設定済み?

投稿2018/12/21 03:47

StetsuQ

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Buddaz

2018/12/21 03:53

はい。上記登録、設定済みです。 そして先ほど、(昨日と何も変えていないのですが•••)自己解決というか正常に動作するようになりました。 なぜ急に動作したのか不明です。。 次にsandboxではなくproductionで実行しようとしているところで "Card nonce not found in this producrion application environment..." という同様のエラーに悩まされており、キャッシュかなにかが影響しているのではと調べております。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問