Perl Paypal API中的请求参数无效

Perl Paypal API中的请求参数无效,perl,paypal,Perl,Paypal,您好,我刚刚获取了perl的代码示例,并尝试使用以下代码向我的sandbox developer测试帐户付款 sub promote { my $headers = HTTP::Headers->new( 'X-PAYPAL-SECURITY-USERID'=> 'alexjaquet-facilitator_api1.gmail.com', 'X-PAYPAL-SECURITY-PASSWORD' => 'xxxxx', 'X-PAYPAL-S

您好,我刚刚获取了perl的代码示例,并尝试使用以下代码向我的sandbox developer测试帐户付款

sub promote {
    my $headers = HTTP::Headers->new(
    'X-PAYPAL-SECURITY-USERID'=> 'alexjaquet-facilitator_api1.gmail.com',
    'X-PAYPAL-SECURITY-PASSWORD' => 'xxxxx',
    'X-PAYPAL-SECURITY-SIGNATURE' => 'An5ns1Kso7MWUdW4ErQKJJJ4qi4-  
                                      3fjxb5G1RfUPmQ5kIdwdsH7znTJ',
    'X-PAYPAL-SERVICE-VERSION' => '1.1.0',
    'X-PAYPAL-APPLICATION-ID' => 'APP-80W284485P519543T',
    'X-PAYPAL-REQUEST-DATA-FORMAT' => 'NV',
    'X-PAYPAL-RESPONSE-DATA-FORMAT' => 'NV');

 my $content = sprintf("%s&%s&%s&%s&%s&%s&%s&%s&%s&%s&%s&%s&%s&%s&%s", 
   'senderEmail=alexjaquet-facilitator@gmail.com',
   'actionType=PAY',
   'currencyCode=USD',
   'feesPayer=EACHRECEIVER',
   'receiverList.receiver(0).email=alexjaquet-facilitator@gmail.com ',
   'receiverList.receiver(0).primary=false',
   'receiverList.receiver(0).amount=20.00',
   'returnUrl=http:myreturnurl',
   'cancelUrl=http:mycancelurl',
   'requestEnvelope.errorLanguage=en_US',
   'clientDetails.ipAddress=127.0.0.1',
   'clientDetails.deviceId=mydevice',
   'clientDetails.applicationId=PayNvpDemo');


my $req = HTTP::Request->new($method,'https://svcs.sandbox.paypal.com/AdaptivePayments
                                      /Pay',$headers, $content);
my $ua = LWP::UserAgent->new;

my $res = $ua->request($req);
if ($res->is_success) {
    print "Content-Type: text/html\n\n";
print $res->content;}
else {
        print "Content-Type: text/html\n\n";
    print $res->status_line, "\n";}
}

但我得到的回应是:

error0.domain=PLATFORM&error0.subdomain=Application&error0.severity=Error&error0.category=Application&error0.message=Invalid+request+parameter%3A+email+alexjaquet协导员%40gmail.com++is+Invalid&error0.parameter0=email&error0.parameter1=alexjaquet协导员%40gmail.com+


那些电子邮件是否正确,是否添加到沙箱中,也会删除其末尾的空间,看不出这会有什么不同,但你永远不知道?Paypal API可能有点挑剔,而且它们的错误并不总是很清楚。我不记得你是否需要发送者和接收者的电子邮件也不同,所以也许也值得一试。嗨,现在我没有收到任何错误消息,只有下面的消息responseEnvelope.timestamp=2013-11-25T13%3A04%3A36.542-08%3A00&responseEnvelope.ack=Success&responseEnvelope.correlationId=61bf2b4956e4a&responseEnvelope.build=7935900&payKey=AP-2WS965343L24925K&paymentExecStatus=已创建,但在余额中我仍然有零美元是正常的吗?值得添加一条评论,说明您是如何解决上一个问题的,以便其他人可以找到它。就余额而言,我认为这取决于付款方式,是否使用正确的货币,是否需要接受,付款类型等。不过,看起来这已经让它变得很好了。您通常可以使用payKey查看特定付款,我认为可以通过weblogin查看其状态。我强烈建议您使用模块,而不是重复已经完成的工作。CPAN上有各种与Paypal相关的模块。我通过使用正确的电子邮件和删减空白来修复以前的问题。