projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4ed0a35
)
new customer_short opens a session, RT#24968
author
Ivan Kohler
<ivan@freeside.biz>
Mon, 2 Dec 2013 01:25:22 +0000
(17:25 -0800)
committer
Ivan Kohler
<ivan@freeside.biz>
Mon, 2 Dec 2013 01:25:22 +0000
(17:25 -0800)
FS/FS/ClientAPI/Signup.pm
patch
|
blob
|
history
diff --git
a/FS/FS/ClientAPI/Signup.pm
b/FS/FS/ClientAPI/Signup.pm
index
593c426
..
957945c
100644
(file)
--- a/
FS/FS/ClientAPI/Signup.pm
+++ b/
FS/FS/ClientAPI/Signup.pm
@@
-4,6
+4,7
@@
use strict;
use vars qw( $DEBUG $me );
use Data::Dumper;
use Tie::RefHash;
use vars qw( $DEBUG $me );
use Data::Dumper;
use Tie::RefHash;
+use Digest::SHA qw(sha512_hex);
use FS::Conf;
use FS::Record qw(qsearch qsearchs dbdef);
use FS::CGI qw(popurl);
use FS::Conf;
use FS::Record qw(qsearch qsearchs dbdef);
use FS::CGI qw(popurl);
@@
-996,9
+997,19
@@
sub new_customer_minimal {
);
return { 'error' => $error } if $error;
);
return { 'error' => $error } if $error;
+ my $session = { 'custnum' => $cust_main->custnum };
+
+ my $session_id;
+ do {
+ $session_id = sha1_hex(time(). {}. rand(). $$)
+ } until ( ! defined _myaccount_cache->get($session_id) ); #just in case
+
+ _cache->set( $session_id, $session, '1 hour' ); # 1 hour?
+
my %return = ( 'error' => '',
'signup_service' => $svc_x,
'custnum' => $cust_main->custnum,
my %return = ( 'error' => '',
'signup_service' => $svc_x,
'custnum' => $cust_main->custnum,
+ 'session_id' => $session_id,
);
if ( $svc[0] ) {
);
if ( $svc[0] ) {
@@
-1023,6
+1034,13
@@
sub new_customer_minimal {
}
}
+use vars qw( $myaccount_cache );
+sub _myaccount_cache {
+ $myaccount_cache ||= new FS::ClientAPI_SessionCache( {
+ 'namespace' => 'FS::ClientAPI::MyAccount',
+ } );
+}
+
sub capture_payment {
my $packet = shift;
sub capture_payment {
my $packet = shift;