add TODO to MANIFEST
[Business-OnlinePayment.git] / notes_for_module_writers_v3
index 7ce39b5..f8d9ce5 100644 (file)
@@ -38,4 +38,74 @@ These are the module writer's notes for v3.  See the regular
 
       (or add "failure_status" to your build_subs call if you have one during
       initialization)
-      
+
+
+- (NEW IN 3.01) Introspection:
+
+  - Add an _info subroutine to your module that returns a hashref of
+    information:
+
+      sub _info {
+        {
+          'info_compat'           => '0.01', # always 0.01 for now,
+                                             # 0.02 will have requirements
+          'gateway_name'          => 'Example Gateway',
+          'gateway_url'           => 'http://www.example.com/',
+          'module_version'        => $VERSION,
+          'supported_types'       => [ qw( CC ECHECK ) ],
+          'supported_actions'     => [
+                                       'Normal Authorization',
+                                       'Authorization Only',
+                                       'Post Authorization',
+                                       'Void',
+                                       'Credit',
+                                     ],
+        };
+      }
+
+    # or a more complicated case:
+
+      sub _info {
+        {
+          'info_compat'           => '0.01', # always 0.01 for now,
+                                             # 0.02 will have requirements
+          'gateway_name'          => 'Example Gateway',
+          'gateway_url'           => 'http://www.example.com/',
+          'module_version'        => $VERSION,
+          'module_notes'          => 'usage notes',
+          'supported_types'       => [ qw( CC ECHECK ) ],
+          'supported_actions'     => { 'CC' => [
+                                         'Normal Authorization',
+                                         'Authorization Only',
+                                         'Post Authorization',
+                                         'Void',
+                                         'Credit',
+                                         'Recurring Authorization',
+                                         'Modify Recurring Authorization',
+                                         'Cancel Recurring Authorization',
+                                       ],
+                                       'ECHECK' => [
+                                         'Normal Authorization',
+                                         'Void',
+                                         'Credit',
+                                       ],
+                                     },
+          'CC_void_requires_card' => 1,
+          'ECHECK_void_requires_account' => 1, #routing_code, account_number, name 
+        };
+      }
+
+
+- authorization and order_number (NEWLY DOCUMENTED IN 3.01):
+
+  Gateways will return one or two values from Authorization Only and
+  Normal Authorization transactions that must be submitted back with a
+  Post Authorization, Void, or Credit transaction.
+
+  If the gateway returns one value, return this as "authorization"
+
+  If the gateway returns two values, return one as "authorization" and the
+  other as "order_number".  Typically "authorization" is the more low-level
+  value returned from the underlying processing network while "order_number"
+  is a unique tranaction id generated by the gateway.
+