diff options
Diffstat (limited to 'bin/xmlrpc-update_payby')
-rwxr-xr-x | bin/xmlrpc-update_payby | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/bin/xmlrpc-update_payby b/bin/xmlrpc-update_payby new file mode 100755 index 000000000..75a1a8da9 --- /dev/null +++ b/bin/xmlrpc-update_payby @@ -0,0 +1,53 @@ +#!/usr/bin/perl + +use strict; +use Frontier::Client; +use Data::Dumper; + +use Getopt::Long; + +my( $email, $password, $custpaybynum ) = @ARGV; +die "Usage: xmlrpc-update_payby email password custpaybynum + [-w weight -b payby -i payinfo -c paycvv -d paydate -n payname -s paystate -t paytype -p payip]\n" + unless $email && length($password) && $custpaybynum; + +my %opts; +GetOptions( + "by=s" => \$opts{'payby'}, + "cvv=s" => \$opts{'paycvv'}, + "date=s" => \$opts{'paydate'}, + "info=s" => \$opts{'payinfo'}, + "name=s" => \$opts{'payname'}, + "payip=s" => \$opts{'payip'}, + "state=s" => \$opts{'paystate'}, + "type=s" => \$opts{'paytype'}, + "weight=i" => \$opts{'weight'}, +); + +foreach my $key (keys %opts) { + delete($opts{$key}) unless defined($opts{$key}); +} + +my $uri = new URI 'http://localhost:8080/'; + +my $server = new Frontier::Client ( 'url' => $uri ); + +my $login_result = $server->call( + 'FS.ClientAPI_XMLRPC.login', + 'email' => $email, + 'password' => $password, +); +die $login_result->{'error'}."\n" if $login_result->{'error'}; + +my $call_result = $server->call( + 'FS.ClientAPI_XMLRPC.update_payby', + 'session_id' => $login_result->{'session_id'}, + 'custpaybynum' => $custpaybynum, + %opts, +); +die $call_result->{'error'}."\n" if $call_result->{'error'}; + +print Dumper($call_result); +print "Successfully updated\n"; + +1; |