function TfrmSignup.CreateSubscription: boolean; var auth: TAuthorizeNetARB; yy, mm, dd: word; begin CoInitialize(nil); Result := false; DecodeDate(Now, yy, mm, dd); auth := TAuthorizeNetARB.Create; try with auth do begin AUTHORIZE_LOGIN := _AUTHORIZE_LOGIN_live; AUTHORIZE_KEY := _AUTHORIZE_KEY_live; Merchant_assigned_name := IntToStr(FUserID); Amount := ReadValuesForAccoutType(cbAccountType.ItemIndex, 'AmountCharged'); Trialamount := ReadValuesForAccoutType(cbAccountType.ItemIndex, 'TrialAmountCharged'); Interval_length := StrToIntDef(ReadValuesForAccoutType(cbAccountType.ItemIndex, 'IntervalMonts'), 1); // months Startdate_month := mm; Startdate_day := dd; Startdate_year := yy; TotalOccurrences := StrToIntDef(ReadValuesForAccoutType(cbAccountType.ItemIndex, 'ContractMonths'), 9999); TrialOccurrences := StrToIntDef(ReadValuesForAccoutType(cbAccountType.ItemIndex, 'TrialOccurrences'), 0); CreditCard_cardNumber := ReplaceBadChars(eCardNumber.Text); CreditCard_expirationDate := ReplaceBadChars(eCardExpire.Text); // yyyy-mm CreditCard_cardCode := Trim(eCardCode.Text); CustomerID := IntToStr(FUserID); CustomerEmail := Trim(dbeEmail.Text); CustomerPhone := Trim(dbeCCode.Text) + Trim(dbeACode.Text) + Trim(dbePhone.Text); CustomerFax := Trim(dbeFax.Text); BillTo_firstName := Trim(dbeFname.Text); BillTo_lastName := Trim(dbeLname.Text); BillTo_address := Trim(dbeAddress1.Text) + ' ' + Trim(dbeAddress2.Text); BillTo_city := Trim(dbeCity.Text); BillTo_state := cbState.Items[cbState.ItemIndex]; BillTo_zip := Trim(dbeZip.Text); BillTo_country := cbCountry.Items[cbCountry.ItemIndex]; MakePayment; if ReturnCode = 0 then // success begin Result := true; FReturedSubscriptioID := ReturnSubscriptionID; FReturedText := ReturnMessage; end else begin Result := false; FReturedText := ReturnMessage; end; end; finally auth.Free; CoUninitialize; end; end;