NI+Cの常田です。
わからないことはForumで確認しましょうというのがSoftLayerのAPI開発の一般的なステップになります。サンプルコードがもっと沢山あれば便利かと思うのでこういったものも掲載していきたいと思います。
今回カード変更で利用している requestCreditCardChange
という関数も1つの典型的な利用になるのでおぼえておくと良いと思います。
通常、弊社のお客様の場合には請求書代行サービスを利用されているのでカード情報を変更することはありません。
引数の形
今回利用する、requestCreditCardChangeというメソッドは下のような引数を受け取ります。
このようにオブジェクトとをそのまま引き渡す様な場合にどのようにすればよいかを見てみたいと思います。実際にこのリンク先にはDataTypeとして持つべきpropertyが記載されています。
クレジットカードの情報を変更
なにはともあれ現在の情報についてはgetObjectで取得するのが良いです。
# Example to change the credit card
# The scrpts change a credit card to a master card
# Reference pages
# http://sldn.softlayer.com/reference/services/softlayer_account/requestCreditCardChange
import SoftLayer
USERNAME = 'set me'
# Generate one at https://manage.softlayer.com/Administrative/apiKeychain
API_KEY = 'set me'
ENDPOINT = "http://stable.application.qadal0501.softlayer.local/v3.1/sldn/xmlrpc/"
# Declare the API client
client = SoftLayer.Client(endpoint_url=ENDPOINT, username=USERNAME,api_key=API_KEY)
#client = SoftLayer.Client(username=USERNAME,api_key=API_KEY)
accountService = client['SoftLayer_Account']
request = {
"billingAddressLine1" : "4849 Alpha Rd",
"billingCity" : "Dallas",
"billingCountryCode" : "US",
"billingEmail" : "myemail@email.com",
"billingNameCompany" : "my company",
"billingNameFirst" : "your first name",
"billingNameLast" : "your last name",
"billingPhoneVoice" : "your phone voice",
"billingPostalCode" : "your postal code",
"billingState" : "TX",
"cardAccountNumber" : "5180857224111850",
"cardExpirationMonth" : "1",
"cardExpirationYear" : "2015",
# your card type
# 001 = Visa
# 002 = Master Card
# 003 = American Express
# 004 = Discover
# PAYPAL = PayPal
"cardType" : "002",
"currencyShortName" : "USD",
"paymentType" : "changeRequest",
"complexType" : "SoftLayer_Billing_Payment_Card_ChangeRequest"
}
result = accountService.getObject()
print (result)
result = accountService.requestCreditCardChange(request)
実際に試してみる
- “set me”の箇所を適宜変更すること
- USERNAME
- API_KEY
- cardAccountNumber
- creditCardVerificationNumber
- 変更後は、SLアカウントのUsernameを「カードの氏名(AAAA AAAAA)」へ変更すること
# Example to change the credit card
# The scrpts change a credit card to a master card
# Reference pages
# http://sldn.softlayer.com/reference/services/softlayer_account/requestCreditCardChange
import SoftLayer
import pprint
pp = pprint.PrettyPrinter(indent=4)
USERNAME = 'set me'
# Generate one at https://manage.softlayer.com/Administrative/apiKeychain
API_KEY = 'set me'
# Declare the API client
client = SoftLayer.Client(username=USERNAME,api_key=API_KEY)
accountService = client['SoftLayer_Account']
request = {
"billingAddressLine1" : "ST:Luke's Tower 15F 8-1 Akashicho,Chuoku",
"billingCity" : "Tokyo",
"billingCountryCode" : "JP",
"billingEmail" : "xxxxxxx@niandc.co.jp",
"billingNameCompany" : "NIPPON JYOHO TSUSHIN",
"billingNameFirst" : "AAAAA",
"billingNameLast" : "AAAAA",
"billingPhoneVoice" : "+8xxxxxxxxxxx",
"billingPostalCode" : "xxx-xxxx",
"billingState" : "OT",
"cardAccountNumber" : "set me",
"cardExpirationMonth" : "09",
"cardExpirationYear" : "2019",
# your card type
# 001 = Visa
# 002 = Master Card
# 003 = American Express
# 004 = Discover
# PAYPAL = PayPal
"cardType" : "003",
"creditCardVerificationNumber" : "set me",
"cardNickname" : "AAAAA AAAAA",
"currencyShortName" : "USD",
"paymentType" : "changeRequest",
"complexType" : "SoftLayer_Billing_Payment_Card_ChangeRequest"
}
result = accountService.getObject()
pp.pprint(result)
result = accountService.requestCreditCardChange(request)
pp.pprint(result)
result = accountService.getObject()
pp.pprint(result)
実行すると管理ポータル上の「Payment Method」の項目が以下のようになります。SL側で処理が終わると新しいカード情報が適応されます。
気をつけることは
- 平日の午前中の方が処理がスムース
- 同時に複数のアカウントですることは望ましくない
です。
まとめ
通常弊社のお客様の場合には請求書代行サービスを利用されているのでカード情報を変更することはありません。
今回はクレジットカードの変更をサンプルに引数の取り方を見てみました。このような形で指定するのがSoftLayerAPIの基本となります。他にもよくこの形式が出てくるので参考にして下さい。