【发布时间】:2015-07-09 06:35:59
【问题描述】:
我不是第一次创建贝宝付款请求。我正在尝试设置一本书的付款。书籍详细信息(例如价格)取自数据库中存储的有关书籍的数据。用户只需输入图书 ID。理想情况下,这些详细信息会变成贝宝付款。
但是,当我提交表单时,我只是返回一个空白屏幕。理想情况下,我希望设置付款,然后用户可以在网站上确认购买。谁能帮我消除黑屏?
代码:
try {
$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_USERNAME, DB_USERNAME, DB_PASSWORD);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$book =$_GET["book_id"];
$user =$_GET["user"];
$sth = $dbh->prepare("SELECT title, price FROM books2 WHERE b_id=$book");
$sth->bindParam(':title', $title);
$sth->bindParam(':price', $price);
$sth->execute();
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item1 = new Item();
$item1->setName($title)
->setCurrency('USD')
->setQuantity(1)
->setPrice($price);
$details = new Details();
$details->setShipping(1.2)
->setTax(1.3)
->setSubtotal(17.50);
$transaction = new Transaction();
$transaction->setAmount($price)
->setItemList($item1)
->setDescription("Payment description")
->setInvoiceNumber(uniqid());
$payment = new Payment();
$payment->setIntent("sale")
->setPayer($user)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction));
$execution = new PaymentExecution();
$result = $payment->execute($execution, $apiContext);
$request = clone $payment;
try {
$payment->create($apiContext);
} catch (Exception $ex) {
ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex);
exit(1);
}
$approvalUrl = $payment->getApprovalLink();
ResultPrinter::printResult("Setting up payment using Paypal. Please visit the URL to Approve.", "Payment", "<a href='$approvalUrl' >$approvalUrl</a>", $request, $payment);
return $payment;
【问题讨论】:
-
您是否为您的代码开启了错误报告功能?
-
我没有...添加错误报告时出现以下错误。
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Id cannot be null' -
这看起来像是一个合法的错误。你可能想要更多地研究它。还要尝试查看代码的哪一部分导致了该错误。
-
错误在于准备好的SELECT语句。
$sth = $dbh->prepare("SELECT title, price FROM books2 WHERE b_id=$book");不知道为什么。我尝试选择的项目不为空 -
您传递的
$book的值是多少?
标签: php paypal paypal-sandbox paypal-rest-sdk