Last active
December 14, 2015 18:48
-
-
Save robertz/5131561 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
component output="false" { | |
public any function init(){ | |
variables.Stripe = createObject("Java", "com.stripe.Stripe"); | |
Stripe.apiKey = "<YOUR SECRET KEY HERE>"; | |
return this; | |
} | |
// https://github.com/jeisenlo/ColdFusion-Stripe-CFC | |
private numeric function timeToUTCInt(required timestamp date) { | |
var currUTCDate = DateConvert('local2utc', arguments.date); | |
var baseDate = CreateDateTime(1970, 1, 1, 0, 0, 0); | |
var intUTCDate = DateDiff('s', baseDate, currUTCDate); | |
return intUTCDate; | |
} | |
// https://github.com/jeisenlo/ColdFusion-Stripe-CFC | |
private datetime function utcIntToTime(required numeric intUtcTime) { | |
var baseDate = CreateDateTime(1970, 1, 1, 0, 0, 0); | |
return DateAdd('s', arguments.intUtcTime, DateConvert('utc2Local', baseDate));; | |
} | |
/***************************************************************************** | |
* Charge com.stripe.model.Charge | |
* | |
* Params: | |
* Amount : Amount to charge (in cents) | |
* Currency : ISO currency type (default usd) | |
* Card : A stripe.js token or a struct populated with card values | |
*****************************************************************************/ | |
public struct function charge(){ | |
var result = ""; | |
var response = {}; | |
var createdCharge = ""; | |
try{ | |
chargeParams = { | |
amount: '100', | |
currency: 'usd' | |
} | |
structAppend(chargeParams, arguments); | |
var createdCharge = createObject("Java", "com.stripe.model.Charge"); | |
result = createdCharge.create(chargeParams); | |
response['success'] = true; | |
structAppend(response, deserializeJSON(listRest(result.toString(), ":"))); | |
response['created'] = utcIntToTime(response.created); | |
} | |
catch(java.lang.Exception e){ | |
response = { | |
success: false, | |
error: e.message, | |
type: e.type | |
}; | |
} | |
return response; | |
} | |
/***************************************************************************** | |
* Events com.stripe.model.EventCollection | |
* | |
* Params: | |
* Type : A string containing a specific event name | |
* Created : UTC timestamp representing date. Also accepts a map (struct) | |
* Count : Number of results to return (default 10) | |
* Offset : Array offset to beging from | |
*****************************************************************************/ | |
public struct function events(){ | |
var events = createObject("Java", "com.stripe.model.Event"); | |
var result = ""; | |
var response = {}; | |
var t = {}; | |
var params = {}; | |
try{ | |
structAppend(params, arguments); | |
result = events.all(params).getData(); | |
response['success'] = true; | |
response['eventArray'] = []; | |
for(var i = 1; i <= arrayLen(result); i++){ | |
t = deserializeJSON(listRest(result[i].toString(), ":")); | |
t.created = utcIntToTime(t.created); | |
arrayAppend(response.eventArray, t); | |
} | |
} | |
catch(java.lang.Exception e){ | |
response = { | |
success: false, | |
error: e.Message, | |
type: e.type | |
}; | |
} | |
return response; | |
} | |
public struct function getAllCharges(){ | |
var params = { | |
type: 'charge.succeeded' | |
}; | |
structAppend(params, arguments); | |
return events(argumentCollection = params); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment