返金可能な期限の設定について

これまで返金可能な期限に関しましては、PAYJPでは特に制限は設けておりませんでしたが、 2018年10月1日 から売上作成日より180日以内と期限を設けることになりました。

返金可能な期限はありますか?

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

今後ともPAY.JPをどうぞよろしくお願いいたします。

課金日を設定した定期課金の日割り計算方法の変更について

これまで課金日(billing_day)が指定された定期課金(Subscription)の日割り計算方法がわかりにくいとのお問い合わせを複数いただいておりました。 検討の結果、日割り計算方法をわかりやすくするために以下のような計算方式に変更することにいたしました。

当変更は、2018年10月1日 16時以降に発生する日割り計算処理より反映されます。

billing_day=1 prorate=True amount=1000 の定期課金を 2018年8月27日12時(JST) に作成した場合

現在

日割りの対象日数: 8/27〜9/1(6日 両端日含む)
日割りの分母: 31

課金額: 1000[円] ✕ 6[日] ÷ 31[日] = 193[円] (端数切り捨て)

変更後

日割りの対象日数: 8/27〜8/31(5日 両端日含む)
日割りの分母: 31

課金額: 1000[円] ✕ 5[日] ÷ 31[日] = 161[円] (端数切り捨て)

なお今回の変更で影響があるお客様は、課金日を指定したplanを利用して日割り課金を有効にしていますお客様が対象になります。

定期課金を利用されておりますお客様でも、上記に該当しない場合はこの変更の影響はございません。

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

今後ともPAY.JPをどうぞよろしくお願いいたします。

定期課金の削除リクエストの仕様変更について

これまで定期課金(Subscription)を削除時にパラメーターを付与する場合、DELETE リクエストの body にパラメーターを付与してリクエストが行われていましたが、QueryString を用いる方法に変更されます。

現在すでに両方式でのリクエストに対応していますが、旧方式のリクエストは2018年10月3日中に廃止予定ですので、各SDKをご使用になられている場合はアップデートをお願いいたします。

なお、上記の変更は定期課金を使用していない場合は影響ありません。

変更前

curl https://api.pay.jp/v1/subscriptions/sub_19f6a2123363b514a743d1334109 \
-u sk_test_c62fade9d045b54cd76d7036: \
-d prorate=true \
-XDELETE

変更後

curl https://api.pay.jp/v1/subscriptions/sub_19f6a2123363b514a743d1334109?prorate=true \
-u sk_test_c62fade9d045b54cd76d7036: \
-XDELETE

各SDK をお使いの場合は、以下のバージョンにアップデートして頂きますようお願いいたします。

  • PHP SDK 1.0.0以上
  • Python SDK 0.0.5以上
  • Node SDK v1.3.1以上
  • Ruby SDK v0.0.6以上
  • Java SDK 0.3.0以上

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

今後ともPAY.JPをどうぞよろしくお願いいたします。

TLS 1.2 移行完了のお知らせ

本日 14:00 をもちまして、 PAY.JP とのすべての暗号通信に TLS 1.2 を採用し、古い TLS による接続の提供を終了いたしました。 加盟店の皆さまにおかれましては、ご対応まことにありがとうございました。

PAY.JPでは日々安全性の確保に努めてまいります。 ご要望・ご意見等ございましたらお問い合わせフォームよりご連絡いただければ幸いです。

【お知らせ】管理画面の変更箇所に関して

PAY.JPをご利用のみなさま

いつもPAY.JPをご利用いただき誠にありがとうございます。 新しい管理画面では、ご利用者の皆さまによりわかりやすく情報をお伝えすることを目指し構成・デザインを見直すとともに内容を充実させました。

変更箇所は以下となります。

1. 新規機能 f:id:payjp:20180330170339p:plain


2. 配置変更 f:id:payjp:20180330164107p:plain

分かりやすい、使いやすいサービスを目指し、内容の充実を図って参ります。 今後もご愛顧のほど、よろしくお願いいたします。

payjp-announce.hatenablog.com

加盟店様向け TLS 1.2 接続試験環境のご案内

PAY.JP をより安全にご利用いただくために、PAY.JP とのすべての暗号通信に TLS 1.2 を採用し、古い TLS による接続の提供を終了させていただきます。 つきましては加盟店の皆様向けに、ご利用中のシステムが正常に TLS 1.2 を取り扱えることをご確認いただくための接続試験環境をご用意いたしました。

試験環境について

ドメイン
api-tls12test.pay.jp
ご利用いただける api endpoint
https://api-tls12test.pay.jp/v1/accounts
仕様
  • TLS 1.2 でのみ接続可能です
  • 本番環境とは隔離されたダミーアプリケーションです
  • 上記以外の api endpoint は動作しません
  • apikey による認証はなく、常に固定のレスポンスが返却されます

検証の方法

一部の PAY.JP SDK では API ベース URL の変更に対応しております*1。 はじめに、 Python の PAY.JP 公式ライブラリを Python シェル内で使用した検証の例を示します。

Python

>>> import payjp
>>> payjp.api_key = 'sk_test_anything'
>>> payjp.api_base = 'https://api-tls12test.pay.jp'  ### APIベースを変更します
>>> payjp.Account.retrieve()

期待されるレスポンスは次のとおりです。

<Account account id=acct_abcdefabcdefabcdefabcdefabc at 0x7faa0dd1b570> JSON: {
  "created": 1496141926,
  "email": "tls12-configuration-good@example.com",
  "id": "acct_abcdefabcdefabcdefabcdefabc",
  "merchant": {
    "bank_enabled": false,
    "brands_accepted": [],
    "business_type": null,
    "charge_type": null,
    "contact_phone": null,
    "country": null,
    "created": 1496141926,
    "currencies_supported": [
      "jpy"
    ],
    "default_currency": "jpy",
    "details_submitted": false,
    "id": "acct_mch_abcdefabcdefabcdefabcde",
    "livemode_activated_at": null,
    "livemode_enabled": false,
    "object": "merchant",
    "product_detail": null,
    "product_name": null,
    "product_type": null,
    "site_published": null,
    "url": null
  },
  "object": "account"
}

このように、アカウントオブジェクトが正常に取得されており、その email フィールドが tls12-configuration-good@example.com と示されていれば、お客様の環境では正常に TLS 1.2 をご利用になれています。

一方、 SSL や 1.2 未満の TLS で接続を試行した場合は SSLError となりますので、別途ご対応が必要となります。

Ruby および Node.js での検証方法は次のとおりになります。

Ruby

require "payjp"
Payjp.api_key = 'sk_test_anything'
Payjp.api_base = 'https://api-tls12test.pay.jp'
Payjp::Account.retrieve

Node.js

var payjp = require('payjp')('sk_test_anything', config={"apibase": "https://api-tls12test.pay.jp/v1"});
payjp.accounts.retrieve();

レスポンス中の email フィールドが tls12-configuration-good@example.com と表示されれば問題ございません。

PHP

payjp-php は apiBase をセットする手段がないため、コードを直接変更します。

この変更を加えたコードは PAY.JP API にいかなるアクセスも行わなくなるので、本番環境とは別の環境をご用意ください。

payjp-php をインストールした新たな環境*2を用意し、 vendor/payjp/payjp-php/lib/Payjp.php を次のように編集します。

diff --git a/lib/Payjp.php b/lib/Payjp.php
index 7e32d3f..a0fdcaa 100644
--- a/lib/Payjp.php
+++ b/lib/Payjp.php
@@ -8,7 +8,7 @@ class Payjp
     public static $apiKey;
 
     // @var string The base URL for the Payjp API.
-    public static $apiBase = 'https://api.pay.jp';
+    public static $apiBase = 'https://api-tls12test.pay.jp';
 
     // @var string|null The version of the Payjp API to use for requests.
     public static $apiVersion = null;

次に、 PHP Interactive shell を用いて次のようにコマンドを実行します。

php > require_once 'vendor/autoload.php';
php > \Payjp\Payjp::setApiKey('sk_test_anything');
php > echo \Payjp\Account::retrieve();

Java

payjp-java への影響は JRE のバージョンで異なります。

  • Java 1.6 (Java 6) はご利用いただけなくなります。 Java 1.7 (Java 7) 以上へアップデートしてください。
  • Java 1.7 (Java 7) をご利用の場合は、 payjp-java を 0.2.1 以上にアップデートし、次の起動パラメータを追加してください。
    -Dhttps.protocols=TLSv1.2
  • Java 1.8 (Java 8) をご利用の場合は、アップデートの必要はありません。

上記いずれの言語でも、SSLError がみられた場合は TLS 1.2 への対応が不十分であるおそれがありますので、今一度システム構成をお確かめください。

PAY.JPでは日々安全性の確保に努めてまいります。 ご要望・ご意見等ございましたらお問い合わせフォームよりご連絡いただければ幸いです。

*1:API ベースのオーバーライドは通常はご自身で行う必要がなく、公式ドキュメントには記載がございません。本記事中のスニペットをご利用ください。

*2:本番環境で使われるVMをコピーしたものなど、現行または将来の本番環境と同等のミドルウェア構成が望ましいです。

Event オブジェクトのデータ保持期間を定めます

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

Event オブジェクトの保持期間について下記の通り変更を予定しています。

■ 変更前

保持期間について特に定めはありませんでした。アカウント作成以来すべてのEventオブジェクトを取得することができました。

■ 変更後

Event オブジェクトの保持期間を各データの 作成後3ヶ月間 とします。 保持期間を過ぎたデータについては、APIおよびダッシュボードから取得できることが保証されなくなります。

本変更の対象は Event オブジェクトのみで、適用は 2018年6月 を予定しております。

また、今後 Event 以外のオブジェクトにつきましても保持期間を設けさせていただく可能性がございます。 適用の際は本件同様にアナウンスブログでの周知を行いますので、ご理解ご協力のほど、よろしくお願いいたします。