クレジットカード決済用JavaScript準備④カード決済会社からのセキュリティートークンget


関数宣言（function文）
-

関数宣言は、その名の通りfunction文を用いて関数を宣言する方法です。宣言した関数は、後から直接「関数名」を記述することで実行されます。



関数式（無名関数 / 関数リテラル）
-

対して、関数式とは変数（もしくは定数）に関数を値として代入し、後からその変数を呼び出すことで関数を間接的に利用する方法です。
ちなみに、関数定義時点で関数名を持たないため、その関数を無名関数（または匿名関数）とよびます。

アロー関数
-

アロー関数とは、関数式（関数リテラル）をさらに簡易的に記述するために用いられる技法です。
その名の通り矢印（=>）から命名されています。

```
    Payjp.createToken(card, (status, response) => (  )
```

ここではPayjp.createToken(card, callback)というオブジェクトとメソッドを使用します。
アロー関数の引数としてはstatusとresponseを定義しています。statusはトークンの作成がうまくなされたかどうかを確認できるHTTPステータスコードが入ります。responseはそのレスポンスの内容が含まれ、response.idとすることでトークンの値を取得することができます。

HTTPステータスコードが200のとき、すなわちうまく処理が完了したときだけ、トークンの値を取得するように実装していきます。

>参考：@unsoluble_sugarさん 感謝
>https://qiita.com/unsoluble_sugar/items/b080a16701946fcfce70

>アイティーエムさま
>https://www.itmanage.co.jp/column/http-www-request-response-statuscode/

(参考)HTTPステータスコード一覧
-

HTTP 100番台 Informational（情報レスポンス）

|HTTPステータスコード|説明|状態|
|--|--|--|
|100 Continue|リクエスト継続可能|正常
|101 Switching|Protocol|プロトコルの切り替え|正常
102 Processing|処理中|正常
103 Early Hints|早期に予測されるヘッダを伝達|正常|

HTTP 200番台 Success（成功レスポンス）

|HTTPステータスコード|説明|状態|
|--|--|--|
|200 OK|リクエストが正常に処理できた|正常|
|201 Created|リクエストが成功してリソースの作成が完了|正常|
|202 Accepted|リクエストを受け取ったが処理はされていない|正常|
|203 Non-Authoritative Information|リクエストが成功したものの、変換プロキシによって元のサーバーの200(OK)レスポンスからペイロードが変更された|正常|
|204 No Content|リクエストに対して送信するコンテンツは無いがヘッダは有用である|正常|
|205 Reset Content|クライアントにドキュメントビューをリセットするように指示|正常|
|206 Partial Content|要求された範囲のデータやリソースの一部分だけのリクエストが成功|正常

HTTP 300番台 Redirection（リダイレクション）

|HTTPステータスコード|説明|状態|
|--|--|--|
|300 Multiple Choice|リクエストに対して複数のレスポンスがあることを示す|正常|
|301 Moved Permanently|恒久的に移動する|正常|
|302 Found|一時的に移動する※ Google検索エンジンの検索リストでは旧URLを示すため将来的に元のURLに戻すなどの時に利用します。|正常
|304 Not Modified|更新されていない※正常に処理されていますがブラウザキャッシュの内容を表示している為、サーバからダウンロードをしていません。|正常|

HTTP 400番台 Client Error（クライアントエラー）

|HTTPステータスコード|説明|状態|
|--|--|--|
|400 Bad Request|一般的なクライアントエラー|エラー|
|401 Unauthorized|アクセス権が無い、または認証に失敗|エラー|
|402 Payment Required|料金の支払いをするまでリクエストを処理できない状態|エラー|
|403 Forbidden|閲覧権限が無いファイルやフォルダ|エラー|
|404 Not Found|Webページが見つからない|エラー|
|405 Method Not Allowed|送信するクライアント側のメソッドが許可されていない|エラー|
|406 Not Acceptable|サーバ側が受付不可能な値（ファイルの種類など）であり提供できない状態|エラー|
|407 Proxy Authentication Required|プロキシサーバ経由で通信を行う際にプロキシサーバの認証情報が不足している|エラー|
|408 Request Timeout|リクエスト送信後のやり取りに時間が長すぎるため時間切れ|エラー|
|409 Conflict|サーバに既に存在しているデータが競合しているためリクエストを完了できない|エラー|
|410 Gone|ファイルが削除されたため、ほぼ永久的にWebページが存在しない|エラー|
|411 Length Required|Content-Lengthとはリクエストヘッダに送るデータ容量が書いてある項目サーバの方でContent-Lengthヘッダが無いためアクセスを拒否した|エラー|
|412 Precondition Failed|ヘッダで定義された前提条件が満たされていない場合にアクセス拒否される|エラー
|413 Payload Too Large|ファイルをアップロードする際にサーバで定めたファイル容量の上限を超えてしまった為アクセス拒否された|エラー
|414 URI Too Long|指定したURLが長すぎる|エラー
|415 Unsupported Media Type|サーバで許可していないリクエストの種類の為アクセス拒否された|エラー
|416 Range Not Satisfiable|サーバーがリクエストされた範囲（容量）を提供できない|エラー
|417 Expectation Failed	サーバが拡張されたステータスコードを返すことが出来ない|エラー
|422 Unprocessable Entity|WebDAVの拡張ステータスコードリクエストは適正だが意味が異なるためサーバが返すことが出来ない|エラー
|423 Locked|WebDAVの拡張ステータスコードリクエスト内容がロックされているためサーバが返すことが出来ない|	エラー|
|425 Too Early|サーバが繰り返し処理が発生される可能性のあるリクエストと判断したため処理が出来ないと判断した※ 無限ループでサーバに高負荷がかかるリスクの可能性がある為|エラー|
|426 Upgrade Required|Upgrading to TLS Within HTTP/1.1の拡張ステータスコードHTTP/1.1にアップグレードが必要な為、サーバが処理できない|エラー|
|429 Too Many Requests|一定時間内にリクエスト数が多すぎるためアクセスを拒否した※ DDos攻撃によるサーバダウンのリスクを回避する為|エラー|
|431 Request Header Fields Too Large|リクエストヘッダーが長すぎるためサーバ処理が拒否した|エラー

HTTP 500番台 Server Error（サーバエラー）


|HTTPステータスコード|説明|状態|
|--|--|--|
|500 Internal Server Error|何らかのサーバ内で起きたエラー|エラー|
|501 Not Implemented|サーバーがリクエストに満たすのに必要な機能をサポートしていない|エラー|
|502 Bad Gateway|ゲートウェイ・プロキシサーバが不正なリクエストを受け取り拒否した|エラー|
|503 Service Unavailable|一時的にサーバにアクセスが出来ない|エラー|
|504 Gateway Timeout|リクエストを送ったサーバからの適切なレスポンスがなくタイムアウトした|エラー|
|505 HTTP Version Not Supported|HTTP バージョンがサーバによってサポートされていない|エラー|
|506 Variant Also Negotiates|Transparent Content Negotiation in HTTPで定義されている拡張ステータスコードURLを返すコンテンツで配置ミスなどによる内部サーバエラー|エラー|
|507 Insufficient Storage|WebDAV拡張ステータスコードサーバで処理するためのストレージ容量不足|エラー|
|508 Loop Detected|主に開発中のプログラム処理で、無限ループに陥ったためサーバーが操作を終了|エラー|
|510 Not Extended|主に静的ファイルへのアクセス集中による一時的に表示されるエラー|エラー|
|511 Network Authentication Required|ネットワーク認証が必要|エラー|