I would output the arguments to the second post_form call just before it occurs.
Bingo! - Thank you very much hippo
That explains what is going wrong...the authorization parameter is missing...
It doesn't explain why it is going wrong.
Using this code:
print "Content-type: text/plain\n\n"; my $headers = { 'headers' => { 'Authorization' => 'Bearer ' . $Site::Variables::stripe_secret +, }, 'agent' => 'Wayfinder/v3.0', }; my $sub_id = 'sub_xxxxxx'; print Dumper $headers; print "\n\n--------------\n\n"; # This line is the culprit... my $res = $http->post_form("https://api.stripe.com/v1/subscriptions/$s +ub_id", {}, $headers); print Dumper $headers; print "\n\n--------------\n\n";
I get this output:
$VAR1 = { 'headers' => { 'Authorization' => 'Bearer sk_test_abc123' }, 'agent' => 'Wayfinder/v3.0' }; -------------- $VAR1 = { 'agent' => 'Wayfinder/v3.0' }; --------------
Somehow the $header is being changed during the first call. I see nothing in the documentation for HTTP::Tiny to explain this.
In the short-term I can work around the problem by recreating $header between calls to Stripe. But it's not a very good solution.
I would also try to fix this first
Ordinarily, I would have fixed the API call first. However, the call requires data from the first call in order to work. Hence the need for two calls to the API.
In reply to Re^2: HTTP::Tiny losing headers for Stripe
by Bod
in thread HTTP::Tiny losing headers for Stripe
by Bod
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |