■やりたいこと
AWSのラムダを利用して月額課金プランAから月額課金プランBに変更を行った場合の見積もりを取得したいです。
ラムダの発火はAPIゲートウェイから行っており、成功しております。
APIに不慣れでエラーから検索して修正を試みましたが行き詰っております。
お手数ですがお力添えいただければ幸いです。
■参考にしたサイト
tripe Billing - 定期支払いにおける比例配分の考え方
https://qiita.com/y_toku/items/404b3c99632161f18579
■コード
physon
1import json 2import stripe 3 4def lambda_handler(event, context): 5 stripe.api_key = "STRIPE_API_KEY" 6 subscription_Id = 'sub_**********' 7 planId ='si_*********' 8 customerId = 'cus_**********' 9 10 next_prodId = 'prod_*********' 11 next_priceId = 'price_**********' 12 13 subscription = stripe.Subscription.retrieve(sub_**********) 14 15 subscription_item = { 16 "id": subscription_item_id, 17 "object": "subscription_item", 18 "price": { 19 "id": next_priceId, 20 "product": next_prodId 21 }, 22 "quantity": 1, 23 "subscription": subscription_Id 24 } 25 26 27 invoices = stripe.Invoice.upcoming( 28 customer=customerId, 29 subscription = subscription_item 30 ) 31 32 33 return { 34 'statusCode': 200, 35 'headers': { 36 "Access-Control-Allow-Origin": "*", 37 "Access-Control-Allow-Methods": "POST", 38 "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Origin, Access-Control-Allow-Methods" 39 }, 40 'body': json.dumps('complete') 41 } 42
■Response
physon
1{ 2 "errorMessage": "Request req_**********: Invalid string: {:id=>\"si_*********\", :object=>\"subscription_item\", :price=>{:id=>\"price_*********\", :product=>\"prod_*********\"}, :quantity=>\"1\", :subscription=>\"sub_*********\"}", 3 "errorType": "InvalidRequestError", 4 "stackTrace": [ 5 [ 6 "/var/task/lambda_function.py", 7 47, 8 "lambda_handler", 9 "subscription = subscription_item" 10 ], 11 [ 12 "/var/task/stripe/api_resources/invoice.py", 13 63, 14 "upcoming", 15 "response, api_key = requestor.request(\"get\", url, params)" 16 ], 17 [ 18 "/var/task/stripe/api_requestor.py", 19 122, 20 "request", 21 "resp = self.interpret_response(rbody, rcode, rheaders)" 22 ], 23 [ 24 "/var/task/stripe/api_requestor.py", 25 373, 26 "interpret_response", 27 "self.handle_error_response(rbody, rcode, resp.data, rheaders)" 28 ], 29 [ 30 "/var/task/stripe/api_requestor.py", 31 152, 32 "handle_error_response", 33 "raise err" 34 ] 35 ] 36}
■ランタイム
Python 3.6
■Stripeの参考にしているページ
Stripe
https://stripe.com/docs/api/invoices/upcoming
https://stripe.com/docs/api/subscription_items/object
あなたの回答
tips
プレビュー