Python向けのライブラリを更新しました 1.1.0 -> 2.0.1

Python向けのライブラリをバージョン2.0.1にアップデートしました。

今回の更新では、従来のバージョン1.x.yと非互換の仕様変更が行われています。 アップデートを行う際には十分ご注意下さい。

仕様が変更となった箇所は次の通りです。

  • 作成済みオブジェクトを操作する方法
  • Exceptionのクラス名

また、定期課金オブジェクト(Recursion)の操作が可能になっています。

作成済みオブジェクトを操作する方法

各オブジェクトを操作する際に、都度retrieveによる呼び出しの上で、操作を行っていましたが、 行う操作をすぐに記述出来るようになりました。 以下は作成済みのChargeオブジェクトを払い戻す場合の例による比較です。

従来

1
2
3
4
5
import webpay
client = webpay.WebPay('test_secret_eHn4TTgsGguBcW764a2KA8Yd')

charge = client.charges.retrieve("ch_3u32gEgiy2xjfEf")
charge.refund()

バージョン2.0.0以降

1
2
3
4
import webpay
client = webpay.WebPay('test_secret_eHn4TTgsGguBcW764a2KA8Yd')

client.charge.refund(id="ch_3u32gEgiy2xjfEf")

各オブジェクトに対する新たな操作方法についての詳しくはAPIドキュメントをご覧ください。

Exceptionのクラス名

Exceptionのクラス名が変更となったため、以下のようにエラーハンドリングの処理の変更が必要となります。

従来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
try:
  # webpay-pythonライブラリを利用したWebPayへのアクセス
  pass
except webpay.errors.CardError, e:
  # カードが拒否された場合
  print "Status is: %d" % e.status
  print "Type is: %s" % e.type
  print "Code is: %s" % e.code
  print "Param is: %s" % e.param
  print "Message is: %s" % e
except webpay.errors.InvalidRequestError, e:
  # リクエストで指定したパラメータが不正な場合
  pass
except webpay.errors.AuthenticationError, e:
  # 認証に失敗した場合
  pass
except webpay.errors.ApiConnectionError, e:
  # APIへの接続エラーが起きた場合
  pass
except webpay.errors.WebpayError, e:
  # WebPayのサーバでエラーが起きた場合
  pass
except Exception, e:
  # WebPayとは関係ない例外の場合

バージョン2.0.0以降

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
try:
  # webpay-pythonライブラリを利用したWebPayへのアクセス
  pass
except webpay.error_response.CardError, e:
  data = e.data.error
# カードが拒否された場合
  print "Status is: %d" % e.status
  print "Type is: %s" % data.type
  print "Code is: %s" % data.code
  print "Param is: %s" % data.param
  print "Message is: %s" % data.message
except webpay.error_response.InvalidRequestError, e:
  # リクエストで指定したパラメータが不正な場合
  pass
except webpay.error_response.AuthenticationError, e:
  # 認証に失敗した場合
  pass
except webpay.error_response.ApiError, e:
  # WebPayのサーバでエラーが起きた場合
  pass
except webpay.ApiConnectionError, e:
  # APIへの接続エラーが起きた場合
  pass
except webpay.InvalidRequestError, e:
  # リクエストで指定したパラメータが不正で、リクエストがおこなえなかった場合
  pass
except Exception, e:
  # WebPayとは関係ない例外の場合

定期課金

今回のバージョンから定期課金の操作がサポートされています。

1
2
3
4
5
6
7
8
9
10
import webpay
client = webpay.WebPay('test_secret_eHn4TTgsGguBcW764a2KA8Yd')

client.recursion.create(
    amount=400,
    currency="jpy",
    customer="cus_45d3MV5phaXJ4uv",
    period="month",
    description="WebPayマガジン購読料"
    )

定期課金に関する詳しい操作方法については、定期課金のドキュメントをご覧ください。

webpay-pythonのリポジトリの更新を停止します

webpay-pythonとしてソースコードを公開しながら開発を進めておりましたが、 今回のアップデートにより、当リポジトリの更新を停止します。

不具合のご報告等受け付ける場所等に関しては、今後準備をして参りますが 現在のところは用意がないため、お問い合わせ窓口よりお願い致します。