LoginSignup
0
3

More than 1 year has passed since last update.

Pythonでクレカ発行してみた(Marqetaチュートリアル)

Posted at

データモデルの理解

Card Products

こちらを読む感じだと、Card Productはクレカ商品を指します(なんとかカードってCMでやってるような感じのもの)。

物理カードやバーチャルのカードについて、動作や機能を定義することができます。Card Productで指定することが可能な属性は、カードがATMやオンラインで使用できるかどうか、また、現在有効であるかどうかを設定できます。物理カードの場合、Card Productは、カードの券面デザインを指定することができます。オプションとして、認証制御やベロシティ制御をCard Productに関連付けることで、関連するカードの使用場所や使用方法を制限することができます。

Cards

カードです。Card Productによって生成、管理できます。

作ってみる

チュートリアルではCurlで叩いてますが、Python SDKを使ってみます。

カードホルダであるユーザを作成(ダッシュボード)

ダッシュボードに記載があるHello Worldなcurlを実行してください。返却されたtokenをこの後使うのでメモしておいてください。

SDKの準備

私はpipでインストールしました。

pip install marqeta

基本的な使い方は以下の通りです。

from marqeta import Client

base_url = "ダッシュボードから取得"
application_token = "ダッシュボードから取得"
access_token = "ダッシュボードから取得"
timeout = 60 # seconds

client = Client(base_url, application_token, access_token, timeout)

Card Productトークンの取得

サンドボックスではすでにいくつかCard Productが作られています。その中から"Reloadable Card"という名前のCard Productのトークンを取得します。

card_products = client.card_products.list()  # 25個しか取得できないという制限がある模様。25を超える場合、streamメソッド等を利用すること。
card_product_token = [x for x in card_products if x.name == 'Reloadable Card'][0].token

カードの作成

カードユーザ向けにカードを発行します。

先ほど作ったユーザに向けにカードを作成します。

data = {
    "user_token": "a4e3decd-8540-4940-aebc-9b64b2e93e24",
    "card_product_token": card_product_token}
client.cards.create(data)

カードの利用

商店のIDであるMID(merchant ID)を指定して、$10を擬似的に送ってみます。

シミュレータ実行はSDKでは用意されていないため、こちらからcurlを生成し呼び出します。
https://www.marqeta.com/docs/developer-guides/core-api-quick-start

image.png

作ったカードのトークンは、Pythonコード内でcreated_card.tokenで取得できます。

ダッシュボードを確認するとtransactionが作成されていました。
image.png

Authorization Control、Velocity Controlを作成するとトランザクションが流れそうです。一旦カードが作れて使えそうなことがわかったのでこの記事は、ここまでとします。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3