我已经尝试了所有我能想到的东西,但我没有做任何帮助。我甚至已经下载了他们在github上的样本“Pizza Store”应用程序。每次,当我用“live”替换sdk-config.ini中的“EndPoint”然后放入我的clientID和clientSecret,并使用该信息更新bootstrap.php文件时,我从“我的应用程序”获取部分我收到错误“访问https://api.paypal.com/v1/vault/credit-cards时获得Http响应代码400”。 我甚至只是使用他们提供的示例应用程序,我得到了这个错误。我一直在搜索和搜索,看起来有一个很好的40个不同的终点,但没有关于如何使用它们,如何设置它们或任何有关它的文档。我可以从示例应用程序中收集的唯一内容是您可以将“mode”设置为“setConfig”调用,但这只会导致400错误。我很绝望,我需要一些帮助。我甚至通过电子邮件发送了他们的支持,但没有得到回应。我正在努力帮助一个朋友,并建立一个人们可以买东西的网站,但这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>';
我得到的错误是......
{"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"}
我不明白,我使用与示例应用程序完全相同的代码。为什么我会收到这个错误。我已经去了那个链接,没有任何帮助。拜托,请求帮忙。 是的,我意识到卡信息是假的,但我应该收到信用卡拒绝错误,而不是错误的请求错误。请。
答案 0 :(得分:0)
我不了解PHP,但我认为资助工具应该是一个阵列:
"payer":{
"payment_method":"credit_card",
"funding_instruments":[
{
"credit_card":{
如果您创建长度为1的资助工具数组($ fiArray),并将第一个元素设置为$ funding_instrument,并将该数组传递给$ payer-&gt; setFundingInstruments(fiArray)。