Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试向paypal api发送数据时获取http 400_Php_Paypal - Fatal编程技术网

Php 尝试向paypal api发送数据时获取http 400

Php 尝试向paypal api发送数据时获取http 400,php,paypal,Php,Paypal,我已经尝试了我能想到的一切,但我所做的一切都无济于事。我甚至下载了github上的“Pizza Store”示例应用程序。每次,当我用“live”替换sdk-config.ini中的“EndPoint”,然后放入我的clientID和clientSecret,并用从“我的应用程序”部分获得的信息更新bootstrap.php文件时,我都会收到错误“访问时获得Http响应代码400” 我甚至只是在使用他们提供的示例应用程序,我发现了这个错误。我一直在搜索,看起来好像有40个不同的端点,但没有关于如

我已经尝试了我能想到的一切,但我所做的一切都无济于事。我甚至下载了github上的“Pizza Store”示例应用程序。每次,当我用“live”替换sdk-config.ini中的“EndPoint”,然后放入我的clientID和clientSecret,并用从“我的应用程序”部分获得的信息更新bootstrap.php文件时,我都会收到错误“访问时获得Http响应代码400” 我甚至只是在使用他们提供的示例应用程序,我发现了这个错误。我一直在搜索,看起来好像有40个不同的端点,但没有关于如何使用它们、如何设置它们或关于它们的任何文档。我从示例应用程序中收集到的唯一信息是,您可以在“setConfig”调用中将“mode”设置为live,但这只会导致400错误。我很绝望,我需要一些帮助。我甚至给他们发了电子邮件,但没有得到回复。我试图帮助一个朋友,建立一个人们可以买东西的网站,但这个错误让我发疯。这里是我的代码的直接副本,我用它来尝试这个

$config = Config::getItem('merchant_settings', 'paypal');
$config = $config['production'];
$sdkConfig = array('mode' => 'live');
$apiContext = new ApiContext(new OAuthTokenCredential($config['client_id'], $config['client_secret']));
$apiContext->setConfig($sdkConfig);
$card = new CreditCard();
$card->setType('visa');
$card->setNumber('4446283280247004');
$card->setExpireMonth('11');
$card->setExpireYear('2018');
$card->setFirstName('Joe');
$card->setLastName('Shopper');
$funding_instrument = new FundingInstrument();
$funding_instrument->setCreditCard($card);
$payer = new Payer();
$payer->setPaymentMethod('credit_card');
$payer->setFundingInstruments($funding_instrument);
$amount = new Amount();
$amount->setCurrency('USD');
$amount->setTotal('15.85');
$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription('A test purchase');
$payment = new Payment();
$payment->setIntent('sale');
$payment->setPayer($payer);
$payment->setTransactions(array($transaction));
try {
  $res = $payment->create($apiContext);
  $this->set('data' , $res);
} catch(PayPalConnectionException $ex) {
  $this->set('data', $ex);
} catch(Exception $e) {
  $this->set('data', $e);
}

echo '<pre>';
print_r($data);
echo '</pre>';
我不明白,我使用的代码与示例应用程序完全相同。为什么我会犯这样的错误。我去了那个链接,没有任何帮助。求求你,我求求你帮忙。
是的,我知道信用卡信息是假的,但我应该得到一个信用卡拒绝错误,而不是一个错误的请求错误。请。

我不懂PHP,但我认为融资工具应该是一个数组:


如果您创建一个长度为1的资金工具数组($fiArray),并将第一个元素设置为$funding_instrument,然后将该数组传递给$payer->setFundingInstruments(fiArray)。

只要我将其更改为$payer->setFundingInstruments(数组($funding_Instruments)),您就正确了;它工作得很好。谢谢你,先生。
{"name":"MALFORMED_REQUEST","message":"Incoming JSON request does not map to API request","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#MALFORMED_REQUEST","debug_id":"2c61b8ecedfc6"}
"payer":{
"payment_method":"credit_card",
"funding_instruments":[
  {
    "credit_card":{