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.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.