学習方法

メンター情報

料金

対応時間帯

返信スピード

学習方法

メンター情報

料金

対応時間帯

返信スピード

募集をシェアしてメンターを探そう
シェア

※ この募集は締め切られました。

サーバーサイド physon AWS lambda API

PHYSONでSTRIPEのAPIを利用してプラン変更した場合の見積もりを取得したい。【AWS LAMDA】

2021年6月17日
単発
予算
3,000円 〜 3,000円
提案数
提案待ち
応募期限
終了

■やりたいこと
AWSのラムダを利用して月額課金プランAから月額課金プランBに変更を行った場合の見積もりを取得したいです。
ラムダの発火はAPIゲートウェイから行っており、成功しております。
APIに不慣れでエラーから検索して修正を試みましたが行き詰っております。
お手数ですがお力添えいただければ幸いです。

■参考にしたサイト
tripe Billing - 定期支払いにおける比例配分の考え方
https://qiita.com/y_toku/items/404b3c99632161f18579

■コード
import json
import stripe

def lambda_handler(event, context):
stripe.api_key = "STRIPE_API_KEY"
subscription_Id = 'sub_**********'
planId ='si_*********'
customerId = 'cus_**********'

next_prodId = 'prod_*********'
next_priceId = 'price_**********'

subscription = stripe.Subscription.retrieve(sub_**********)

subscription_item = {
"id": subscription_item_id,
"object": "subscription_item",
"price": {
"id": next_priceId,
"product": next_prodId
},
"quantity": 1,
"subscription": subscription_Id
}


invoices = stripe.Invoice.upcoming(
customer=customerId,
subscription = subscription_item
)


return {
'statusCode': 200,
'headers': {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST",
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Origin, Access-Control-Allow-Methods"
},
'body': json.dumps('complete')
}

■Response
{
"errorMessage": "Request req_**********: Invalid string: {:id=>\"si_*********\", :object=>\"subscription_item\", :price=>{:id=>\"price_*********\", :product=>\"prod_*********\"}, :quantity=>\"1\", :subscription=>\"sub_*********\"}",
"errorType": "InvalidRequestError",
"stackTrace": [
[
"/var/task/lambda_function.py",
47,
"lambda_handler",
"subscription = subscription_item"
],
[
"/var/task/stripe/api_resources/invoice.py",
63,
"upcoming",
"response, api_key = requestor.request(\"get\", url, params)"
],
[
"/var/task/stripe/api_requestor.py",
122,
"request",
"resp = self.interpret_response(rbody, rcode, rheaders)"
],
[
"/var/task/stripe/api_requestor.py",
373,
"interpret_response",
"self.handle_error_response(rbody, rcode, resp.data, rheaders)"
],
[
"/var/task/stripe/api_requestor.py",
152,
"handle_error_response",
"raise err"
]
]
}
■ランタイム
Python 3.6

■Stripeの参考にしているページ
Stripe
https://stripe.com/docs/api/invoices/upcoming
https://stripe.com/docs/api/subscription_items/object

募集をシェアしてメンターを探そう
シェア