Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Authorize.net plugin for Android Phonegap
- * Luis Balam 2013
- * @version 0.0.1
- *
- */
- package org.opencorebanking.plugins;
- import java.math.BigDecimal;
- import net.authorize.Environment;
- import net.authorize.Merchant;
- import net.authorize.TransactionType;
- import net.authorize.aim.cardpresent.Result;
- import net.authorize.aim.Transaction;
- import net.authorize.data.*;
- import net.authorize.data.creditcard.*;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.util.Log;
- import org.apache.cordova.api.Plugin;
- import org.apache.cordova.api.PluginResult;
- //import org.apache.cordova.api.PluginResult.Status;
- public class AuthorizeNet extends Plugin {
- public String callback;
- /**
- * Constructor.
- */
- public AuthorizeNet() {
- }
- @Override
- public PluginResult execute(String action, JSONArray args, String callbackId) {
- this.callback = callbackId;
- if (action.equals("request")) {
- JSONObject rec = new JSONObject();
- try{
- JSONObject jo = args.getJSONObject(0); //getJSONObject(0);
- if (jo != null) {
- //obj.has("resources")
- String apiLoginID = jo.has("APILoginID") ? jo.getString("APILoginID") : "";
- String transactionKey = jo.has("TransactionKey") ? jo.getString("TransactionKey") : "";
- String MD5Value = jo.has("APILoginID") ? jo.getString("APILoginID") : "";
- String CType = jo.has("CreditCardType") ? jo.getString("CreditCardType") : ""; //MasterCard Visa AmericanExpress Discover DinersClub JCB eCheck ""
- String CCNumber = jo.has("CreditCardNumber") ? jo.getString("CreditCardNumber") :"";
- String CCExpM = jo.has("CreditCardExpirationMonth") ? jo.getString("CreditCardExpirationMonth") : "";
- String CCExpY = jo.has("CreditCardExpirationYear") ? jo.getString("CreditCardExpirationYear") : "";
- String CCCode = jo.has("CreditCardCode") ? jo.getString("CreditCardCode") : "";
- Double TMount = jo.has("Amount") ? jo.getDouble("Amount") : 0.00;
- String CCode = jo.has("CurrencyCode") ? jo.getString("CurrencyCode") : "";
- Merchant merchant = Merchant.createMerchant(Environment.SANDBOX, apiLoginID, transactionKey);
- merchant.setDeviceType(net.authorize.DeviceType.VIRTUAL_TERMINAL);
- merchant.setMarketType(net.authorize.MarketType.RETAIL);
- merchant.setMD5Value(MD5Value);
- /*
- VISA("Visa"),
- MASTER_CARD("MasterCard"),
- AMERICAN_EXPRESS("American Express"),
- DISCOVER("Discover"),
- DINERS_CLUB("Diners Club"),
- JCB("JCB"),
- ECHECK("eCheck"), // added for the reporting API
- UNKNOWN("");
- */
- //creditCard.setTrack1("%B4111111111111111^CARDUSER/JOHN^1803101000000000020000831000000?");
- // creditCard.setTrack2(";4111111111111111=1803101000020000831?");
- // create transaction
- // create credit card
- CreditCard creditCard = CreditCard.createCreditCard();
- creditCard.setCreditCardNumber(CCNumber);
- creditCard.setExpirationMonth(CCExpM);
- creditCard.setExpirationYear(CCExpY);
- creditCard.setCardCode(CCCode);
- creditCard.setCardPresent(true);
- //MasterCard Visa AmericanExpress Discover DinersClub JCB eCheck ""
- if(CType.equals("Visa") ){
- creditCard.setCardType(CardType.VISA);
- } else if (CType.equals("MasterCard") ){
- creditCard.setCardType(CardType.MASTER_CARD);
- } else if (CType.equals("AmericanExpress") ){
- creditCard.setCardType(CardType.AMERICAN_EXPRESS);
- } else if (CType.equals("Discover") ){
- creditCard.setCardType(CardType.DISCOVER);
- } else if (CType.equals("DinersClub") ){
- creditCard.setCardType(CardType.DINERS_CLUB);
- } else if (CType.equals("JCB") ){
- creditCard.setCardType(CardType.JCB);
- } else if (CType.equals("eCheck") ){
- creditCard.setCardType(CardType.ECHECK);
- } else {
- creditCard.setCardType(CardType.UNKNOWN);
- }
- Transaction authCaptureTransaction = merchant.createAIMTransaction(TransactionType.AUTH_CAPTURE, new BigDecimal(TMount));
- authCaptureTransaction.setCurrencyCode(CCode);
- authCaptureTransaction.setCreditCard(creditCard);
- Result<Transaction> result = (Result<Transaction>)merchant.postTransaction(authCaptureTransaction);
- if(result.isApproved()) {
- //Log.e("org.opencorebanking", result.getRefTransId() );
- rec.put("TransactionID", result.getTransId());
- //rec.put("TransactionRefID", result.getRefTransId());
- return new PluginResult(PluginResult.Status.OK, rec);
- } else if (result.isDeclined()) {
- //Log.e("org.opencorebanking", result.getResponseReasonCodes().get(0) + " : " + result.getResponseReasonCodes().get(0).getReasonText());
- return new PluginResult(PluginResult.Status.ERROR,
- "ERROR-DECL: " + result.getResponseReasonCodes().get(0) + " : " + result.getResponseReasonCodes().get(0).getReasonText());
- } else {
- //Log.e("org.opencorebanking", result.getResponseReasonCodes().get(0) + " : " + result.getResponseReasonCodes().get(0).getReasonText());
- return new PluginResult(PluginResult.Status.ERROR,
- "ERROR: " + result.getResponseReasonCodes().get(0) + " : " + result.getResponseReasonCodes().get(0).getReasonText());
- }
- }
- } catch (JSONException e) {
- Log.e("org.opencorebanking", "Error in Intent action " + e.getMessage());
- return new PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
- }
- } else {
- return new PluginResult(PluginResult.Status.INVALID_ACTION, "Invalid option " + action );
- }
- PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT);
- r.setKeepCallback(true);
- return r;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement