Stripeからとあるカードブランドにおいて、システムメンテナンスのため一部決済が失敗する可能性がある連絡がありました。
メンテナンス日時予定:
- 2021年2月18日(木) 日本時間 02:00 ~ 02:15
- 2021年2月18日(木) 日本時間 02:20 ~ 02:35
とのことだったので、この時間帯に定期課金の決済が発生する可能性があるか調べてみましょう。
ちなみに Smart Retries などのリトライスケジュールを組んでいるようであれば、翌日などに自動的にリトライをしてくれるため、そんなに気にすることはありません。
該当のユーザーに対して事前に「システムメンテナンスのため決済に失敗する可能性がありますが、自動的に再決済されるため特に操作などは不要です」とお伝えするだけで済むかと思います。
該当時間帯にcurrent_period_endがあるタイミングを調べるスクリプト
とりあえずざっくりと該当するSubscriptionのIDと契約更新のタイミング(ちゃんとJSTで意図した時間帯に該当するデータがあるかを確認するため)を表示するようにしてみました。
YOUR_SECRET_KEY=***YOUR_SECRET_KEY***
SUBSCRIPTION_LIMIT=10
START=`date -j -f "%Y-%m-%d %H:%M:%S" "2021-02-18 02:00:00" "+%s"`
END=`date -j -f "%Y-%m-%d %H:%M:%S" "2021-02-18 02:35:00" "+%s"`
date -r ${END}
RES=$(curl -s --globoff https://api.stripe.com/v1/subscriptions?limit=${SUBSCRIPTION_LIMIT}\¤t_period_end[lt]=${END}\¤t_period_end[gte]=${START} \
-u ${YOUR_SECRET_KEY}: \
-G)
END=`echo ${RES} | jq '.data[] | .current_period_end' | sort`
for TIME in ${END}
do
date -r ${TIME}
done
RESULT=`echo ${RES} | jq -r '.data[] | .id'`
for ID in ${RESULT}
do
echo ${ID}
done
結果
該当するデータはありませんでした!