Stripe Customer ID 生成(Token ID より)

カード情報をトークン化した ID を利用して顧客を Stripe に登録します。課金に利用する Customer ID、クレジットカードの下4桁、登録処理のステータス、通信ログがデータ項目に格納されます。

Stripe Customer ID 生成(Token ID より)
stripe-customer-create-20170901-addonxml
(md5:afe1e752a6a536475dc5f4a7d7b0193b)



    A. Stripe SecretKey をセットしてください (sk_xxx: 32文字)単一行記述必須
    B. Token ID が格納されている文字列型データを選択してくださいデータ項目選択文字列型(単一行)必須
    C. Customer Email が格納されている文字列型データを選択してくださいデータ項目選択文字列型(単一行)必須
    D. Customer Description 情報が格納されている文字列型or選択肢型データを選択してください(例: 法人名)データ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)
    E. Stripe Customer ID が格納される文字列型データを選択してください (更新)データ項目選択文字列型(単一行)必須
    F. カード番号下4桁が格納される文字列型データを選択してください (更新)データ項目選択文字列型(単一行)
    W. HTTP ステータスが格納される文字列型データを選択してください (更新)データ項目選択文字列型(単一行)必須
    X. 通信ログが格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)
    -設定変数名設定ラベル
    Aconf_SecretKeyStripe SecretKey をセットしてください (sk_xxx: 32文字)
    Bconf_DataIdBToken ID が格納されている文字列型データを選択してください
    Cconf_DataIdCCustomer Email が格納されている文字列型データを選択してください
    Dconf_DataIdDCustomer Description 情報が格納されている文字列型or選択肢型データを選択してください(例: 法人名)
    Econf_DataIdEStripe Customer ID が格納される文字列型データを選択してください (更新)
    Fconf_DataIdFカード番号下4桁が格納される文字列型データを選択してください (更新)
    Wconf_DataIdWHTTP ステータスが格納される文字列型データを選択してください (更新)
    Xconf_DataIdX通信ログが格納される文字列型データを選択してください (更新)
    // Stripe Elements Token to Stripe Customer ID (ver. 20170901)
    // (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 dataIdW = configs.get( "conf_DataIdW" ) + "";
    var dataIdX = configs.get( "conf_DataIdX" ) + "";
    // convet 'java.lang.String' to 'javascript string'
    
    //// == Data Retrieving / ワークフローデータの参照 ==
    var stripeTokenId = engine.findDataByNumber( dataIdB ) + "";
    var customerEmail = engine.findDataByNumber( dataIdC ) + "";
    var customerDescr = "";
    if( engine.findDataDefinitionByNumber( dataIdD ).matchDataType( "SELECT_SINGLE" ) ){
      customerDescr = engine.findDataByNumber( dataIdD ).get(0).getValue() + "";
    }else if( engine.findDataDefinitionByNumber( dataIdD ).matchDataType( "STRING_TEXTFIELD" ) ){
      customerDescr = engine.findDataByNumber( dataIdD ) + "";
    }
    // convet 'java.lang.String' to 'javascript string'
    
    //// == Calculating / 演算 ==
    
    // preparing for API Request
    var apiRequest = httpClient.begin(); // HttpRequestWrapper
    
    // preparing for API Request (OAuth2 Token, HTTP Basic Auth, etc)
    apiRequest = apiRequest.basic( secretKey, "" );
    
    // preparing for API Request (Path parameters)
    var apiUri = "https://api.stripe.com/v1/customers";
    
    // preparing for API Request (Query parameters)
    // (no set)
    
    // preparing for API Request (JSON Body, Form Parameters)
    apiRequest = apiRequest.formParam( "source",      stripeTokenId );
    apiRequest = apiRequest.formParam( "email",       customerEmail );
    apiRequest = apiRequest.formParam( "description", customerDescr );
    
    // Request to the API (POST, GET, PUT, etc)
    var response = apiRequest.post( apiUri ); // HttpResponseWrapper
    var httpStatus = response.getStatusCode() + "";
    var accessLog = "---POST request--- " + httpStatus + "\n";
    accessLog += response.getResponseAsString() + "\n";
    var responseObj = JSON.parse( response.getResponseAsString() );
    
    // Retrieve Properties from Response-JSON
    var stripeCustomerId = "";
    var stripeLast4 = "";
    if( httpStatus === "200" ){
      stripeCustomerId  = responseObj.id;
      stripeLast4 = responseObj.sources.data[0].last4;
    }
    
    // Error Handling - https://stripe.com/docs/api#errors
    // (no action)
    
    
    //// == Data Updating / ワークフローデータへの代入 ==
    if ( dataIdE !== "" ){
      engine.setDataByNumber( dataIdE, stripeCustomerId );
    }
    if ( dataIdF !== "" ){
      engine.setDataByNumber( dataIdF, stripeLast4 );
    }
    if ( dataIdW !== "" ){
      engine.setDataByNumber( dataIdW, httpStatus );
    }
    if ( dataIdX !== "" ){
      engine.setDataByNumber( dataIdX, accessLog );
    }
    

    • B’: Bで選択したデータ項目に格納されている Token ID
    • C’: Cで選択したデータ項目に格納されているEmail情報
    • D’: Dで選択したデータ項目に格納されている顧客情報
    • トークン化されたカード情報 B’ の顧客として C’ D’ をもつ顧客が Stripe に登録されます
    • 課金に利用される Customer ID が E で選択したデータ項目に格納されます
    • 登録されたクレジットカードの下4桁が F で選択したデータ項目に格納されます
    • 登録処理のステータスが W で選択したデータ項目に格納されます
    • 通信ログが X で選択したデータ項目に格納されます
    • 事前に Stripe Dashboard にて Secret Key を取得しておく必要があります
    • 対応カードや対応通貨は国によって異なります