「401 UNAUTHORIZED」は、APIリクエストの認証情報に問題がある場合に返されるエラーです。
エラーレスポンスの例:
{
"resultInfo": {
"code": "UNAUTHORIZED",
"message": "Unauthorized request",
"codeId": "08100016"
},
"data": null
}
1. テスト環境で"UNAUTHORIZED(code: 08100016)"が発生する場合
Create a Code(コード決済)など各種APIをテスト環境でリクエストした際にこのエラーが発生した場合、以下の3点をご確認ください。
①HMAC認証ヘッダーの生成
Authorization ヘッダーの署名が不正(HMAC認証が正しく生成できていない)可能性があります。
HMAC署名の生成方法については、以下の記事をご参照ください。
https://www.paypay.ne.jp/opa/doc/jp/v1.0/api_authorization
(SDK不使用の場合)まず、こちらのExample値を用いてHMAC Authヘッダー生成を行い、サンプルHMAC Authヘッダーと同一値となることをご確認ください。リクエストを送信する際のヘッダー情報は、HMAC Authヘッダーの生成に用いた文字列と完全に一致している必要があります。
②merchantId の設定
リクエスト時に merchantId が正しく設定されているかご確認ください。
設定方法: SDKを利用する場合 / 利用しない場合
③Epoch(UNIX時間)の確認
HMACヘッダーに設定されているEpochが、現在日時(秒単位)であることをご確認ください。サーバーの時刻設定がずれている場合も含め、現在日時と2分以上差異がある場合はエラーとなります。
2.本番環境に切り替えたら "UNAUTHORIZED" が発生する場合
本番環境はセキュリティ強化のため IPアドレス制限 を行っています。
本番申込時に申請したIPアドレスからアクセスしているかご確認ください。 IPアドレスを申請していない、または変更・追加が必要な場合は、こちらのフォームからIPアドレスの登録をお問い合わせください。
Note: SDKを利用されている場合は、以下のFAQも併せてご確認ください。
SDK利用時、テスト環境から本番環境への切り替えはどうすれば良いですか?
3.その他の主な原因と対処法
上記1, 2に該当しない場合、以下の原因も考えられます。
原因 |
対処法 |
|---|---|
| APIキー、Secretの誤り | 管理画面でAPIキー/API Secretが間違っていないか確認してください。 |
| 環境の混在 | テストのキーを本番環境で使用していないか、リクエストURLやキーの環境を確認してください。 |
| リクエストURLの誤り |
リクエスト先のURL(エンドポイント)が間違っていいないか確認してください。 <よくある誤り> 正: /v2/code/payments/{merchantPaymentId} |
| ヘッダーの欠如 | 送信ヘッダーに`Authorization`や`X-ASSUME-MERCHANT`ヘッダーが正しい値で存在しているかどうか確認してください。 |
| 必須パラメーターの欠如 |
merchantId などのリクエストに必須のパラメータが欠如していないか確認してください。 |
| コールバックドメインの誤り | 管理画面に登録されているドメインと、リクエストで指定したドメインが一致しているか確認してください。 |
4.チェックの進め方
エラーが発生した場合は以下順序にて調査を進めて下さい。
1. テスト環境で HMAC、`merchantId`、Epoch を確認する。
2. 本番環境のIP制限と環境混在を確認する。
3. URL / ヘッダー / 必須項目 / ドメインを確認する。