贝宝卡支付
Paypal card payment
您好,我正在使用 php Paypal SDK,当输入重定向 url 时,以下代码有效。但是我正在尝试设置直接卡支付,这是否需要重定向 url 因为所有示例代码似乎都将其遗漏了?
当使用重定向 url 对象时,我的应用程序只是将我重定向到 Paypal api 沙箱并要求登录帐户(这不是直接卡支付)
这是我的代码,returns 具有:
Fatal error: Uncaught exception
'PayPal\Exception\PayPalConnectionException' with message 'Got Http
response code 400 when accessing
https://api.sandbox.paypal.com/v1/payments/payment.' in
/Applications/MAMP/htdocs/tealtique/library/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php
on line 176
我的代码不包含名称间距,因为该文件是一个控制器对象,名称间距没有问题。
$apiContext = $this->paypal_access_token();
$payment_description = 'Payment to comapany';
$invoice_number = uniqid();
$addr = new BaseAddress();
$addr->setLine1($_POST['adr_line1']);
$addr->setCity($_POST['adr_city']);
$addr->setCountryCode($_POST['adr_country']);
$addr->setPostalCode($_POST['adr_postal_code']);
$addr->setState($_POST['adr_county']);
$card = new CreditCard();
$card->setNumber($_POST['card_number']);
$card->setType($_POST['card_type']);
$card->setExpireMonth($_POST['card_expire_mounth']);
$card->setExpireYear($_POST['card_expire_year']);
$card->setCvv2($_POST['card_cvv2']);
$card->setFirstName($_POST['card_first_name']);
$card->setLastName($_POST['card_last_name']);
$card->setBillingAddress($addr);
$fi = new FundingInstrument();
$fi->setCreditCard($card);
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item = new Item();
$item->setName('Payment Instalment')
->setCurrency(PAYPAL_CURRENCY)
->setQuantity(1)
->setPrice($_POST['payment_amount']);
$itemList = new ItemList();
$itemList->setItems(array($item));
$details = new Details();
$details->setShipping(0)
->setFee(PAYPAL_FEE)
->setTax(0)
->setSubtotal($_POST['payment_amount']);
$amount = new Amount();
$amount->setCurrency(PAYPAL_CURRENCY)
->setTotal($_POST['payment_amount'])
->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($itemList)
->setDescription($payment_description)
->setInvoiceNumber($invoice_number);
$payment = new Payment();
$payment->setIntent("sale")
->setPayer($payer)
->setTransactions(array($transaction));
try {
$payment->create($apiContext);
} catch (Exception $ex) {
echo 'exception : <pre>';print_r(json_decode($ex->getData()));
exit(1);
}
//$approvalUrl = $payment->getApprovalLink();
//header('location:' . $approvalUrl);
我也对如何使用 sdk 捕获错误消息感到有点困惑,因为 Paypal 开发者网站上的文档仅说明了将返回哪些错误以及它们的含义,而不是如何捕获它们。
要事第一:
您可以捕获 PayPalHttpConnection 异常并打印详细消息,说明它失败的原因。为此,请在您的代码周围添加一个 try catch 块。
try {
$creditCard->create($apiContext);
echo $creditCard;
}
catch (\PayPal\Exception\PayPalConnectionException $ex) {
echo $ex->getData();
}
我会将其添加到 https://github.com/paypal/PayPal-PHP-SDK/wiki
的其中一个维基页面
其次,如果您打算使用信用卡直接付款,则不需要重定向 URL。您可以按照 Payments using credit card information
在 https://paypal-php-sdk.herokuapp.com/
提供的示例进行操作
此外,您可以通过一条命令轻松地在本地计算机上设置示例,因为它已随 SDK 一起提供。只需按照说明进行操作即可 given here
您好,我正在使用 php Paypal SDK,当输入重定向 url 时,以下代码有效。但是我正在尝试设置直接卡支付,这是否需要重定向 url 因为所有示例代码似乎都将其遗漏了?
当使用重定向 url 对象时,我的应用程序只是将我重定向到 Paypal api 沙箱并要求登录帐户(这不是直接卡支付)
这是我的代码,returns 具有:
Fatal error: Uncaught exception 'PayPal\Exception\PayPalConnectionException' with message 'Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.' in /Applications/MAMP/htdocs/tealtique/library/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php on line 176
我的代码不包含名称间距,因为该文件是一个控制器对象,名称间距没有问题。
$apiContext = $this->paypal_access_token();
$payment_description = 'Payment to comapany';
$invoice_number = uniqid();
$addr = new BaseAddress();
$addr->setLine1($_POST['adr_line1']);
$addr->setCity($_POST['adr_city']);
$addr->setCountryCode($_POST['adr_country']);
$addr->setPostalCode($_POST['adr_postal_code']);
$addr->setState($_POST['adr_county']);
$card = new CreditCard();
$card->setNumber($_POST['card_number']);
$card->setType($_POST['card_type']);
$card->setExpireMonth($_POST['card_expire_mounth']);
$card->setExpireYear($_POST['card_expire_year']);
$card->setCvv2($_POST['card_cvv2']);
$card->setFirstName($_POST['card_first_name']);
$card->setLastName($_POST['card_last_name']);
$card->setBillingAddress($addr);
$fi = new FundingInstrument();
$fi->setCreditCard($card);
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item = new Item();
$item->setName('Payment Instalment')
->setCurrency(PAYPAL_CURRENCY)
->setQuantity(1)
->setPrice($_POST['payment_amount']);
$itemList = new ItemList();
$itemList->setItems(array($item));
$details = new Details();
$details->setShipping(0)
->setFee(PAYPAL_FEE)
->setTax(0)
->setSubtotal($_POST['payment_amount']);
$amount = new Amount();
$amount->setCurrency(PAYPAL_CURRENCY)
->setTotal($_POST['payment_amount'])
->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($itemList)
->setDescription($payment_description)
->setInvoiceNumber($invoice_number);
$payment = new Payment();
$payment->setIntent("sale")
->setPayer($payer)
->setTransactions(array($transaction));
try {
$payment->create($apiContext);
} catch (Exception $ex) {
echo 'exception : <pre>';print_r(json_decode($ex->getData()));
exit(1);
}
//$approvalUrl = $payment->getApprovalLink();
//header('location:' . $approvalUrl);
我也对如何使用 sdk 捕获错误消息感到有点困惑,因为 Paypal 开发者网站上的文档仅说明了将返回哪些错误以及它们的含义,而不是如何捕获它们。
要事第一:
您可以捕获 PayPalHttpConnection 异常并打印详细消息,说明它失败的原因。为此,请在您的代码周围添加一个 try catch 块。
try {
$creditCard->create($apiContext);
echo $creditCard;
}
catch (\PayPal\Exception\PayPalConnectionException $ex) {
echo $ex->getData();
}
我会将其添加到 https://github.com/paypal/PayPal-PHP-SDK/wiki
的其中一个维基页面其次,如果您打算使用信用卡直接付款,则不需要重定向 URL。您可以按照 Payments using credit card information
在 https://paypal-php-sdk.herokuapp.com/
此外,您可以通过一条命令轻松地在本地计算机上设置示例,因为它已随 SDK 一起提供。只需按照说明进行操作即可 given here