1
+ require 'rubygems'
2
+ require 'yaml'
3
+ require 'authorizenet'
4
+
5
+ require 'securerandom'
6
+
7
+ include AuthorizeNet ::API
8
+
9
+ def create_an_accept_payment_transaction ( )
10
+ config = YAML . load_file ( File . dirname ( __FILE__ ) + "/../credentials.yml" )
11
+
12
+ transaction = Transaction . new ( config [ 'api_login_id' ] , config [ 'api_transaction_key' ] , :gateway => :sandbox )
13
+
14
+ request = CreateTransactionRequest . new
15
+
16
+ request . transactionRequest = TransactionRequestType . new ( )
17
+ request . transactionRequest . amount = ( ( SecureRandom . random_number + 1 ) * 150 ) . round ( 2 )
18
+ request . transactionRequest . payment = PaymentType . new
19
+ request . transactionRequest . payment . opaqueData = OpaqueDataType . new ( 'COMMON.ACCEPT.INAPP.PAYMENT' , '119eyJjb2RlIjoiNTBfMl8wNjAwMDUyN0JEODE4RjQxOUEyRjhGQkIxMkY0MzdGQjAxQUIwRTY2NjhFNEFCN0VENzE4NTUwMjlGRUU0M0JFMENERUIwQzM2M0ExOUEwMDAzNzlGRDNFMjBCODJEMDFCQjkyNEJDIiwidG9rZW4iOiI5NDkwMjMyMTAyOTQwOTk5NDA0NjAzIiwidiI6IjEuMSJ9' )
20
+ request . transactionRequest . customer = CustomerType . new ( nil , '[email protected] ' )
21
+ request . transactionRequest . transactionType = TransactionTypeEnum ::AuthCaptureTransaction
22
+
23
+ response = transaction . create_transaction ( request )
24
+
25
+ if response != nil
26
+ if response . messages . resultCode == MessageTypeEnum ::Ok
27
+ if response . transactionResponse != nil && response . transactionResponse . messages != nil
28
+ puts "Successful charge (auth + capture) (authorization code: #{ response . transactionResponse . authCode } )"
29
+ puts "Transaction Response code : #{ response . transactionResponse . responseCode } "
30
+ puts "Code : #{ response . transactionResponse . messages . messages [ 0 ] . code } "
31
+ puts "Description : #{ response . transactionResponse . messages . messages [ 0 ] . description } "
32
+ else
33
+ puts "Transaction Failed"
34
+ if response . transactionResponse . errors != nil
35
+ puts "Error Code : #{ response . transactionResponse . errors . errors [ 0 ] . errorCode } "
36
+ puts "Error Message : #{ response . transactionResponse . errors . errors [ 0 ] . errorText } "
37
+ end
38
+ raise "Failed to charge card."
39
+ end
40
+ else
41
+ puts "Transaction Failed"
42
+ if response . transactionResponse != nil && response . transactionResponse . errors != nil
43
+ puts "Error Code : #{ response . transactionResponse . errors . errors [ 0 ] . errorCode } "
44
+ puts "Error Message : #{ response . transactionResponse . errors . errors [ 0 ] . errorText } "
45
+ else
46
+ puts "Error Code : #{ response . messages . messages [ 0 ] . code } "
47
+ puts "Error Message : #{ response . messages . messages [ 0 ] . text } "
48
+ end
49
+ raise "Failed to charge card."
50
+ end
51
+ else
52
+ puts "Response is null"
53
+ raise "Failed to charge card."
54
+ end
55
+
56
+ return response
57
+ end
58
+
59
+ if __FILE__ == $0
60
+ create_an_accept_payment_transaction ( )
61
+ end
0 commit comments