X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=notes_for_module_writers_v3;h=f8d9ce574b8c059e61964d79da45f622b3350803;hb=d5219427fe8b3ec08a5627cce2a2fc90dc903204;hp=7ce39b5810ce7931678520f1cafa6c5ec2ba6000;hpb=1feff1996cf31beed8b0ccf43ca5af821012143b;p=Business-OnlinePayment.git diff --git a/notes_for_module_writers_v3 b/notes_for_module_writers_v3 index 7ce39b5..f8d9ce5 100644 --- a/notes_for_module_writers_v3 +++ b/notes_for_module_writers_v3 @@ -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. +