Stripe カード課金

Customer ID、チャージ額、通貨コードなどから、課金記録としての Charge ID、クレジットカードの下4桁、登録処理のステータス、通信ログをそれぞれデータ項目に格納します

    A. Stripe SecretKey をセットしてください (sk_xxx: 32文字)単一行記述必須
    B. Description情報が格納されている文字列型データを選択してください(例: 法人名)データ項目選択文字列型(単一行)
    C. CustomerID情報が格納されている文字列型データを選択してくださいデータ項目選択文字列型(単一行)
    D. チャージ額情報が格納されている数値型or文字列型データを選択してください(単位: 円、セント)データ項目選択文字列型(単一行)or数値型必須
    E. 通貨コード情報が格納されている文字列型or選択肢型データを選択してください(例: jpy、usd)データ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    F. Stripe Charge ID が格納される文字列型データを選択してください (更新)データ項目選択文字列型(単一行)
    G. カード番号下4桁が格納される文字列型データを選択してください (更新)データ項目選択文字列型(単一行)
    W. 通信ステータスが格納される文字列型データを選択してください (更新)データ項目選択文字列型(単一行)必須
    X. 通信ログが格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)
    -設定変数名設定ラベル
    Aconf_SecretKeyStripe SecretKey をセットしてください (sk_xxx: 32文字)
    Bconf_DataIdBDescription情報が格納されている文字列型データを選択してください(例: 法人名)
    Cconf_DataIdCCustomerID情報が格納されている文字列型データを選択してください
    Dconf_DataIdDチャージ額情報が格納されている数値型or文字列型データを選択してください(単位: 円、セント)
    Econf_DataIdE通貨コード情報が格納されている文字列型or選択肢型データを選択してください(例: jpy、usd)
    Fconf_DataIdFStripe Charge ID が格納される文字列型データを選択してください (更新)
    Gconf_DataIdGカード番号下4桁が格納される文字列型データを選択してください (更新)
    Wconf_DataIdW通信ステータスが格納される文字列型データを選択してください (更新)
    Xconf_DataIdX通信ログが格納される文字列型データを選択してください (更新)
    // Charge Card on Stripe (ver. 20161007)
    // (c) 2016, Questetra, Inc. (the MIT License)
    
    //// == 工程コンフィグの参照 / Config Retrieving ==
    var secretKey = configs.get( "conf_SecretKey" ) + "";
    var dataIdB = configs.get( "conf_DataIdB" );
    var dataIdC = configs.get( "conf_DataIdC" );
    var dataIdD = configs.get( "conf_DataIdD" );
    var dataIdE = configs.get( "conf_DataIdE" );
    var dataIdF = configs.get( "conf_DataIdF" );
    var dataIdG = configs.get( "conf_DataIdG" );
    var dataIdW = configs.get( "conf_DataIdW" );
    var dataIdX = configs.get( "conf_DataIdX" );
    
    //// == ワークフローデータの参照 / Data Retrieving ==
    var stripeDesc = data.get( dataIdB ) + "";
    var stripeCusId = data.get( dataIdC ) + "";
    var stripeAmount = data.get( dataIdD ) - 0;
    var stripeCurrency = "";
    if( data.get( dataIdE ) instanceof java.util.ArrayList ){
      stripeCurrency = data.get( dataIdE ).get(0).getValue() + "";
    }else if( data.get( dataIdE ) instanceof java.lang.String ){
      stripeCurrency = data.get( dataIdE ) + "";
    }
    
    //// == 演算 / Calculating ==
    var accessLog = "";
    var responseJson = "";
    var uri = "https://api.stripe.com/v1/charges";
    var response = httpClient.begin()
      .basic( secretKey, "" )
      .formParam( "description", stripeDesc )
      .formParam( "customer", stripeCusId )
      .formParam( "amount", stripeAmount )
      .formParam( "currency", stripeCurrency )
      .post( uri );
    var httpStatus = response.getStatusCode() + "";
    accessLog += "---POST request--- " + httpStatus + "\n";
    accessLog += response.getResponseAsString() + "\n";
    responseJson += response.getResponseAsString() + "";
    
    var chId = "";
    var last4 = "";
    if( httpStatus == "200" ){
      var jsonObj = JSON.parse( responseJson );
      chId = jsonObj.id;
      last4 = jsonObj.source.last4;
    }
    
    //// == ワークフローデータへの代入 / Data Updating ==
    retVal.put( dataIdF, chId );
    retVal.put( dataIdG, last4 );
    retVal.put( dataIdW, httpStatus );
    if( dataIdX !== "" ){
      retVal.put( dataIdX, accessLog );
    }
    

    • B’: Bで選択したデータ項目に格納されているDescription情報
    • C’: Cで選択したデータ項目に格納されているCustomerID情報
    • D’: Dで選択したデータ項目に格納されているチャージ金額情報
    • E’: Eで選択したデータ項目に格納されている通貨コード情報
    • プロパティ B’C’D’E’ のカードチャージが Stripe に登録されます
    • 課金記録としての Charge ID が F で選択したデータ項目に格納されます
    • 利用されたクレジットカードの下4桁が G で選択したデータ項目に格納されます
    • 登録処理のステータスが W で選択したデータ項目に格納されます (エラー処理のハンドリングに利用します)
    • 通信ログが X で選択したデータ項目に格納されます
    • 事前に Stripe Dashboard にて Secret Key を取得しておく必要があります
    • 対応カードや対応通貨は国によって異なります