580001无效的请求:{0}贝宝(PHP) [英] 580001 Invalid request: {0} PayPal (PHP)

查看:150
本文介绍了580001无效的请求:{0}贝宝(PHP)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要送用户名和密码,从这个页面:的 https://www.paypal.com/us/cgi-bin/webscr?cmd=_profile-api-signature

和中的AppId是我用我的Andr​​oid应用创建付款ID:的https: //apps.paypal.com/user/my-account/applications

我使用了如下功能:

 函数verify_paypal($ payKey,$ APPID)
{
  全球$ payPalUser_Id,$ payPalPassword,$ payPalSig;
$ headerArray =阵列(
X-PAYPAL  - 安全 - 用户名:'。$ payPalUser_Id,
X-贝宝安全密码:$ payPalPassword,
X-贝宝安全-签名:'。$ payPalSig,
X-PAYPAL-REQUEST数据格式:JSON,
X-贝宝响应数据格式:XML,
X-贝宝应用-ID:$ APPID。
);

$url="https://svcs.paypal.com/AdaptivePayments/PaymentDetails?payKey={$payKey}&requestEnvelope.errorLanguage=en_US";
$ CH = curl_init($网址);
curl_setopt($ CH,CURLOPT_RETURNTRANSFER,真正的);
curl_setopt($ CH,CURLOPT_HTTPHEADER,$ headerArray);
$ adaptiveResponse = curl_exec($ CH);
curl_close($ CH);
返回$ adaptiveResponse;
}
 

但它给这个错误:

 < XML版本=1.0编码=UTF-8&GT?;
< NS3:FaultMessage的xmlns:NS3 =htt​​p://svcs.paypal.com/types/common的xmlns:NS2 =htt​​p://svcs.paypal.com/types/ap>
< responseEnvelope>
<时间戳> 2013-11-27T14:58:07.463-08:00< /时间戳>
< ACK>失败和LT; / ACK>
<的correlationID> d97c635f935b3< /的correlationID>
<建立> 7935900< /编译>
< / responseEnvelope>
<错误>
< ErrorID中> 580001< / ErrorID中>
<域>平台和LT; /域>
<子域>应用< /子域>
<严重>错误< /严重性>
<类别>应用< /类>
<消息>无效的请求:{0}< /消息>
< /错误>
< / NS3:FaultMessage>
 

解决方案

请求数据格式应该是NV:

  $ headerArray =阵列(
X-PAYPAL  - 安全 - 用户名:'。$ payPalUser_Id,
X-贝宝安全密码:$ payPalPassword,
X-贝宝安全-签名:'。$ payPalSig,
X-PAYPAL-REQUEST数据格式:NV',
X-贝宝响应数据格式:JSON,
X-贝宝应用-ID:$ APPID。
);
 

I'm sending userid and password from this page: https://www.paypal.com/us/cgi-bin/webscr?cmd=_profile-api-signature

And the AppId is the ID I use in my android app to create payments: https://apps.paypal.com/user/my-account/applications

I'm using the follow function:

function verify_paypal($payKey, $appID)
{
  global $payPalUser_Id, $payPalPassword, $payPalSig;
$headerArray = array(
'X-PAYPAL-SECURITY-USERID:'.$payPalUser_Id,
'X-PAYPAL-SECURITY-PASSWORD:'.$payPalPassword,
'X-PAYPAL-SECURITY-SIGNATURE:'.$payPalSig,
'X-PAYPAL-REQUEST-DATA-FORMAT:JSON',
'X-PAYPAL-RESPONSE-DATA-FORMAT:XML',
'X-PAYPAL-APPLICATION-ID:'.$appID
);

$url="https://svcs.paypal.com/AdaptivePayments/PaymentDetails?payKey={$payKey}&requestEnvelope.errorLanguage=en_US";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
$adaptiveResponse = curl_exec($ch);
curl_close($ch);
return $adaptiveResponse;
}

But it gives this error:

<?xml version='1.0' encoding='UTF-8'?>
<ns3:FaultMessage xmlns:ns3="http://svcs.paypal.com/types/common" xmlns:ns2="http://svcs.paypal.com/types/ap">
<responseEnvelope>
<timestamp>2013-11-27T14:58:07.463-08:00</timestamp>
<ack>Failure</ack>
<correlationId>d97c635f935b3</correlationId>
<build>7935900</build>
</responseEnvelope>
<error>
<errorId>580001</errorId>
<domain>PLATFORM</domain>
<subdomain>Application</subdomain>
<severity>Error</severity>
<category>Application</category>
<message>Invalid request: {0}</message>
</error>
</ns3:FaultMessage>

解决方案

REQUEST-DATA-FORMAT should be NV:

$headerArray = array(
'X-PAYPAL-SECURITY-USERID:'.$payPalUser_Id,
'X-PAYPAL-SECURITY-PASSWORD:'.$payPalPassword,
'X-PAYPAL-SECURITY-SIGNATURE:'.$payPalSig,
'X-PAYPAL-REQUEST-DATA-FORMAT:NV',
'X-PAYPAL-RESPONSE-DATA-FORMAT:JSON',
'X-PAYPAL-APPLICATION-ID:'.$appID
);

这篇关于580001无效的请求:{0}贝宝(PHP)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆