2017/07/12-14の障害に関しまして

2017/07/12-14の連日に渡り、上流接続先(SonyPaymentServices)とのシステム障害が起こっており、ご利用のお客さまには多大なご迷惑をおかけして大変申し訳ございませんでした。

本記事では、これまでの障害状況と現状における再発防止策を共有させていただきます。

2017/07/12, 13

  • 原因
    • SonyPaymentServices側へ、弊社とは異なる別の加盟店への大量アクセスにより、弊社を含めたSonyPaymentServicesを利用している加盟店に接続障害が発生
  • 再発防止策
    • 大量不正アクセスの検知の早期化
    • 不正なアクセスのIP遮断を早急に実施する体制の整備

2017/07/14

  • 原因
    • PAY.JP の特定加盟店による大量不正リクエストにより、連日同様の原因でシステム障害が起きている状況のため、SonyPaymentServices側から PAY.JP 経由のリクエストを制限
    • SonyPaymentServices側と PAY.JP の2社間の連絡経路に問題があったことによる検知の遅れ

PAY.JP としての再発防止策

  • 不正なリクエストを送信してくる加盟店を素早く検知できる監視体制および制御システムの構築
  • SonyPaymentServices・PAY.JP側問わず障害時の連絡体制の強化
  • 障害時に加盟店への第一報を迅速に行える体制の構築
  • リアルタイムで検知可能なシステムのステータスページを用意 (https://status.pay.jp/)

このたびはこちらの不備で大変なご迷惑をおかけいたしましたこと、深くお詫び申し上げます。

弊社および上流接続先ではこの事態を重く受け止め、同様の事態を二度と招かぬよう 再発防止に向けて全力をあげて取り組んでまいります。

ご利用のお客さまにはご迷惑をおかけいたしまして大変申し訳ございませんでした。

2017/07/14 07:43 - 2017/07/14 08:53 上流接続先(SonyPaymentServices)との接続障害が発生いたしました

下記時間帯に上流接続先(SonyPaymentServices)との接続障害が発生いたしました

  • 2017/07/14 07:43 - 2017/07/14 08:53

これにより、一部の決済処理 (支払い作成、確定処理、返金)およびカード登録処理で失敗が発生しておりました。

ご利用のお客さまにはご迷惑をおかけいたしまして大変申し訳ございませんでした。

2017/07/13 21:00 - 2017/07/13 21:20 上流接続先(SonyPaymentServices)で障害が発生いたしました

下記時間帯に上流接続先(SonyPaymentServices)で障害が発生いたしました。

  • 2017/07/13 21:00 - 2017/07/13 21:20

これにより、決済処理 (支払い作成、確定処理、返金)およびカード登録処理で失敗が発生しておりました。

ご利用のお客さまにはご迷惑をおかけいたしまして大変申し訳ございませんでした。

2017/07/12 21:02 - 2017/07/12 22:12 上流接続先(SonyPaymentServices)で障害が発生いたしました

更新情報

2017/07/12 22:25 更新

■ 復旧: 22:25 復旧を確認


下記時間帯に上流接続先(SonyPaymentServices)で障害が発生いたしました。

  • 2017/07/12 21:02 - 2017/07/12 22:12

これにより、決済処理 (支払い作成、確定処理、返金)およびカード登録処理で失敗が発生しておりました。

ご利用のお客さまにはご迷惑をおかけいたしまして大変申し訳ございませんでした。

2017/07/24 4:00AM-5:00AM 上流のシステムメンテナンスのお知らせ

平素よりPAY.JPをご愛顧いただきまして誠にありがとうございます。

下記日時において、システムメンテナンスが上流で発生致します。

2017/07/24(月) 04:00AM~05:00AMの間で10分程度の停止

上記時間帯中、Visa/MasterCard での API・ダッシュボードでの決済処理は失敗します。定期課金につきましては、当該時間帯のものは実行されず停止し、再開後に決済処理が走ります。

APIでは、以下のようなレスポンスが返されます。

{
    "error":
    {
        "code": "processing_error",
        "message": "An error occurred while processing the card. Try again in a little bit.",
        "status": 402,
        "type": "card_error"
    }
}

お客様には大変ご不便ご迷惑をお掛けいたしますが、ご理解のほどよろしくお願いいたします。

エラーレスポンス内容修正のお知らせ

平素よりPAY.JPをご愛顧いただきまして誠にありがとうございます。

以下に挙げるケースで、エラーレスポンスのJSONペイロードの内容が一貫していないケースが確認されましたため、内容を修正いたしましたのでお知らせいたします。

  1. エラーコードとして test_card_on_livemode を返す各エンドポイントにおいて、エラーレスポンスのペイロードparam パラメータが含まれているべきところで、含まれていなかった問題の修正。

    この問題は、テストカード番号をライブモードで指定したときに発生するもので、影響は軽微と考えられます。

    なお、正しい param パラメータの値は "number" となります。

    対象エンドポイント:

    • POST https://api.pay.jp/v1/tokens
  2. (テストモードのみ) エラー発生用テストカード番号指定時、エラーレスポンスのペイロード中の param パラメータの値がリクエスト中のパラメータ名と一致していない問題の修正。

    誤: number / exp_month / cvc

    正: card[number] / card[exp_month] / card[cvc]

    対象エンドポイント:

    • POST https://api.pay.jp/v1/tokens

      このエンドポイントでは、 param"invalid_number" という値が入ってしまっていました。

    • POST https://api.pay.jp/v1/charges

    • POST https://api.pay.jp/v1/customers
    • POST https://api.pay.jp/v1/customers/:id/cards
    • POST https://api.pay.jp/v1/customers/:id/cards/:card_id

修正点は以上となります。

引き続きPAY.JPをよろしくお願いいたします。

2017/6/7 16:55~21:55 トークン化APIに問題が発生しておりました

平素よりPAY.JPをご愛顧いただきまして誠にありがとうございます。

2017/6/7 17時~22時ごろ、トークン化APIにつきまして、下記に挙げる障害が発生しておりました。 この度は誠にご迷惑をおかけし、大変申し訳ございません。

本件による障害は、当該時間帯の正常な決済を妨げるものではございませんので、ご安心ください。

障害時間帯

2017/6/7 16:55 (JST) ~2017/6/7 21:55 (JST)

障害内容

A. トークン化APIにおいて、card[cvc] パラメータの値にかかわらず、レスポンスペイロード中の card.cvc_check の値が常に unchecked になる。

この問題の影響を受けるエンドポイントおよびサービスは以下の3つです。

この問題の影響を受けないエンドポイントは以下です。

B. A. にて生成されたトークンに紐づくcardの情報を取得した場合 cvc_check の値が unchecked となっている。

上記情報を取得することのできる経路は下記です。

  1. A. で生成したトークンIDを指定して「トークン情報を取得 」にリクエストを送信した際の、レスポンスペイロード中の card.cvc_check の値
  2. cardパラメータに A. で生成したトークンIDを指定して「顧客を作成」にリクエストを送信した際の、レスポンスペイロード中の cards.data[0].cvc_check の値
  3. cardパラメータに A. で生成したトークンIDを指定して「顧客のカードを作成」にリクエストを送信した際の、レスポンスペイロード中の cvc_check の値
  4. 2. 3. にてトークンIDを指定して作成した顧客のカードを「顧客リストを取得にて取得した場合の data[*].cards.data[*].cvc_check の値
  5. 2. 3. にてトークンIDを指定して作成した顧客を「顧客情報を取得」「顧客情報を更新」にて取得/ 更新した場合の cards.data[*].cvc_check の値
  6. 2. 3. にてトークンIDを指定して作成した顧客のカードを「顧客のカードリストを取得」にて取得した場合の data[*].cvc_check の値
  7. 2. 3. にてトークンIDを指定して作成した顧客のカードを「顧客のカード情報を取得」「顧客のカードを更新」にて取得 / 更新した場合の cvc_check の値
  8. cardパラメータに A. で生成したトークンIDを指定して「支払いを作成」に対してリクエストを送信した際のレスポンスペイロード中の card.cvc_check の値
  9. customerパラメータに 2. 3. の顧客IDを指定して「支払いを作成」に対してリクエストを送信した際のレスポンスペイロード中の card.cvc_check の値
  10. 9. で作成した支払いのIDを指定して「支払い情報を取得」「支払い情報を更新」「支払いを返金する」「支払いを再認証する」「支払い処理を確定する」にて支払いを取得 / 更新 / 返金 / 再認証 / 確定した際のレスポンスペイロード中の card.cvc_check の値
  11. 9. で作成した支払いを「支払いリストを取得」にて取得した際のレスポンスペイロード中の data[*].card.cvc_check の値

また、上記に関連するイベントのペイロード中の値も同様に影響を受けます。

本障害への事後対応に関して

当該時間帯に登録されたトークンやカードは、そのまま「支払い」や「定期課金」にてお使いいただけます。

cvc_check値の詳細は APIリファレンス にてドキュメント化しておりませんでしたが、加盟店様におかれましては、当該時間帯に登録されたトークンやカードに関する操作、および両者に関連するイベント、webhookにつきまして、cvc_checkの値によって処理内容を変えているような箇所がございましたら、影響のご確認をお願いいたします。

補足: cvc_check値につきまして

cvc_check 値は、与えられたカード番号とCVCコードの組について、CVCコードが妥当なものか照会が可能であった場合に、それを示すものです。

cvc_checkの値 意味
passed 正しいCVCコードである
unchecked CVCコードの照会は行われなかった
unavailable CVCコードの照会に失敗した
failed 不正なCVCコードである

cvc_check 値が passed でない場合でも、トークンやカードオブジェクト経由での決済ができない旨を意味するものではありません。