Solved

Cybercash DLL

Posted on 2001-08-10
9
557 Views
Last Modified: 2008-02-20
I need to incorporate Cybercash DLL in my Web application to use their payment services. Does somebody have an experience using Cybercash DLL? I am having problems sending credit card info to them. Help!!
0
Comment
Question by:Alexsasha
  • 5
  • 4
9 Comments
 
LVL 15

Expert Comment

by:ozymandias
ID: 6375233
What problems are you having ?
Please be more specific.
What type of operation are you trying to peform ?
Is it an mauthcapture ?
0
 

Author Comment

by:Alexsasha
ID: 6377855
The DLL I am trying to work with is CyberCashMCK.DLL

This piece of codes I am having probles with:
___________________________________________________________
Set CPI = Server.CreateObject("CyberCashMCK.MessageBlock")
               Set MO = Server.CreateObject("CyberCashMCK.MessageBlock")
               Set mbInput = Server.CreateObject("CyberCashMCK.MessageBlock")
               Set POP = Server.CreateObject("CyberCashMCK.MessageBlock")
               Set Output = CreateObject("Scripting.Dictionary")

'Response.Write (" line 173")

               'Specify merchant configuration file location
               sConfigLoc = Application("MerchantFile")
         
               'Do not change this URL
               sPaymentURL = "http://cr.cybercash.com/cgi-bin/directcardpayment.cgi"     

               'Provide the input parameters required for the CyberCash message
               CPI.Add "cpi.card-number", sCCNumber
               CPI.Add "cpi.card-exp", sCCExpDate
               CPI.Add "cpi.card-name", sCCName

               MO.Add "mo.cybercash-id", sCCID  
               MO.Add "mo.order-id", iKey
               MO.Add "mo.price", ("usd " & iTotal )
               MO.Add "mo.version", sCC_Version

               mbInput.Add "CPI", CPI.Write
               mbInput.Add "MO", MO.Write
           
'Response.Write (" line 190")
       
               'Send transaction to CyberCash
               Set SockObj = Server.CreateObject("CyberCashMCK.socket.1")
               Set oResult = SockObj.SendCCServer(sPaymentURL, sConfigLoc, mbInput)    

               oResult.WriteDictionary(Output)
               'Dump output to the browser in name/value format
               b = Output.Items
               a = Output.Keys
__________________________________________________________
1  First error occured on Server.CreateObject("CyberCashMCK.MessageBlock"). I know that CyberCashMCK.MessageBlock needs Item/iKey pair which I is not supplied. Can I hard code them somehow?

2. Second error occured on Set oResult = SockObj.SendCCServer(sPaymentURL, sConfigLoc, mbInput).
 "Cannot create object SockObj" message or something like that.

Could you please help?    
Thanks a lot

0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6378082
OK. I'm not sure what the problem is.
Has this ever worked ?
What error are you getting on Server.CreateObject("CyberCashMCK.MessageBlock") ?

Here is a basic breakdown of the code I use :

Set in = Server.CreateObject("CyberCashMCK.MessageBlock")
Set out = CreateObject("Scripting.Dictionary")

config = "merchant_conf"
operation = "mauthcapture"
ccURL = "http://cr.cybercash.com/cgi-bin/cr21api.cgi/" & operation

in.Add "order-id",TransactionID
in.Add "amount",Amount
in.Add "card-number",CardNumber
in.Add "card-exp",ExpiryMonth & "/" & ExpiryYear
in.Add "card-cid",IssueNo
in.Add "card-name",CardHolderName
in.Add "card-address",CardHolderAddress
in.Add "card-zip",CardHolderPostcode

Set socket = Server.CreateObject("CyberCashMCK.socket.1")
Set result = SockObj.SendCCServer(ccURL, config, in)
result.WriteDictionary(out)
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:Alexsasha
ID: 6380558
It works just fine with existing application.
I modified my codes according with yours and now it looks like this:
___________________________________________________________
Set mbInput = Server.CreateObject("CyberCashMCK.MessageBlock")              
               Set Output = CreateObject("Scripting.Dictionary")
                             
               'Specify merchant configuration file location
               sConfigLoc = Application("MerchantFile")
         
               'Do not change this URL
               sPaymentURL = "http://cr.cybercash.com/cgi-bin/directcardpayment.cgi"         
                                   
               'Provide the input parameters required for the CyberCash message
               mbInput.Add "order-id", Request.Cookies("OrderID")              
               mbInput.Add "amount", iTotal              
               mbInput.Add "card-number", sCCNumber              
               mbInput.Add "card-exp", sCCExpDate
               mbInput.Add "cybercash-id", sCCID                
               mbInput.Add "card-name", sCCName
               mbInput.Add "card-address", sCCAddress
               mbInput.Add "card-zip", sCCZip                                        
               mbInput.Add "version", sCC_Version        
                              Set SockObj = Server.CreateObject("CyberCashMCK.socket.1")                        
               Set oResult = SockObj.SendCCServer(sPaymentURL, sConfigLoc, mbInput)              
               oResult.WriteDictionary(Output)
__________________________________________________________

I'm having an error: "CybercashMCK.Socket.1 error 800400e0
MCK_E_FILE_NOT_FOUND (oX800400EO) right at
"Set oResult = SockObj.SendCCServer(sPaymentURL, sConfigLoc, mbInput)"
It's reading OK sPaymentURL and sConfigLoc values, BUT NOT mbInput.
Where do you get order-id (TransactionID) and card-cid (IssueNo) values?
Thanks.
Alexsasha
               

 
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6380698
It looks like it might be having trouble finding your merchant_conf file.

All these values :

  TransactionID
  Amount
  CardNumber
  ExpiryMonth & "/" & ExpiryYear
  IssueNo
  CardHolderName
  CardHolderAddress
  CardHolderPostcode

are from user input or from our customer database, except TransactionID which unique id generated by database code.

0
 

Author Comment

by:Alexsasha
ID: 6380865
I am OK with all my variables from the database.
You may be right about the merchant_conf file.
In global.asa I have Application("MerchantFile") = "c:\\inetpub\\wwwroot\\spotus-15\\mck-cgi\\conf\\LIVE_merchant_conf". How this directory/file gets created on C drive?
What should I do next? Thanks a lot
Alexsasha



0
 
LVL 15

Accepted Solution

by:
ozymandias earned 150 total points
ID: 6381575
The merchant_conf file should be provided to you by Cybercash.

It contains :

your MCK_TYPE - e.g. merchant
the cybercash normal host and SSL host URLs
your cybercash id (provided by cybercash)
your secret key (provided by cybercash)
your merchant hey (provided by cybercash)
debugging and logging options
a list of the credit card types accepted
transaction timout values
default currency settings
etc

All these settings are used by the cybercash DLL on your machine to carry out the secure transaction with the cybercash server.

Have you :

a) made sure that this file exists in the specifed location.
b) checked that it has the correct values
c) made sure that the account used to run the web server service has read privildges on this file

?
0
 

Author Comment

by:Alexsasha
ID: 6384543
Looks I have everything setup OK.  Now it redirects me to the next page with a message: "Error occurred while processing your credit card". Looks like my Output.Item("MStatus") = "success" does not succeed.
Thanks
Alexsasha
0
 

Author Comment

by:Alexsasha
ID: 6393411
I had enough information for my question, thank you.
Alexsasha
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question