Php 在'上处理哪些数据;返回';Paypal中的URL?
我正在尝试整合贝宝支付系统。目前,用户在点击“结帐”按钮后被重定向到Paypal支付网页。当触发Php 在'上处理哪些数据;返回';Paypal中的URL?,php,paypal,Php,Paypal,我正在尝试整合贝宝支付系统。目前,用户在点击“结帐”按钮后被重定向到Paypal支付网页。当触发Pay Now按钮时(由于在Paypal网站上找到了测试信用卡账号,我已经能够测试付款),它会将用户重定向到我在沙箱中设置的URL。除了处理返回页上的数据外,其他一切都可以完美地工作 以下是我表格的代码: form = '<form id="paypalCheckout" style="display: none;" action="https://securepayments.sandbox.
Pay Now
按钮时(由于在Paypal网站上找到了测试信用卡账号,我已经能够测试付款),它会将用户重定向到我在沙箱中设置的URL。除了处理返回页上的数据外,其他一切都可以完美地工作
以下是我表格的代码:
form = '<form id="paypalCheckout" style="display: none;" action="https://securepayments.sandbox.paypal.com/acquiringweb" method="post">\
<input type="hidden" name="cmd" value="_hosted-payment">\
<input type="hidden" name="subtotal" value="<MyTotal>">\
<input type="hidden" name="business" value="<MyMerchantID>">\
<input type="hidden" name="currency_code" value="EUR">\
<input type="hidden" name="paymentaction" value="sale">\
<input type="hidden" name="return" value="<MyReturnURL>">\
</form>';
我是否应该获得更多信息,如付款状态和其他信息?什么是IPN?设置返回URL有什么区别
非常感谢您的帮助
编辑
答案中的链接已断开贝宝将向您提供有关付款的所有详细信息。您可以通过以下方式查看返回的数据:-
echo '<pre>'; print_r($_REQUEST); exit;
echo';打印请求($);出口
结果将是
整个数组
的细节,即。付款状态、银行详细信息、订单详细信息等,您可以使用这些数据进行查看,也可以将其存储在数据库中 tx变量是交易ID。您需要使用此变量通过调用其API来验证您的支付状态。最简单的方法是执行调用
我建议您使用Paypal提供的官方信息来获取TransactionID详细信息
$payId = $_POST['tx'];
$data = array(
'USER' => urlencode('<MyLogin>'),
'PWD' => urlencode('<MyPassword>'),
'SIGNATURE' => urlencode('<MyApiSignature>'),
'VERSION' => urlencode('62.0'),
'METHOD' => urlencode('GetTransactionDetails'),
'TRANSACTIONID' => urlencode($payId),
);
$url = 'https://api-3t.sandbox.paypal.com/nvp?'.http_build_query($data);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
parse_str($result, $return);
我最后做了以下几件事:
你好,谢谢回复!我根据你的要求编辑了我的帖子,但我得到的信息与我之前发布的print\r($\u请求)相同代码>谢谢回复!我会按照你给我的方式调查并回复你:)我在互联网上看到很多教程建议使用$fp=fsockopen('ssl://www.sandbox.paypal.com“,443,$errno,$errstr,30)
,这是另一种方式吗?感谢您的帮助,我最终使用了curl
而不是Paypal SDK。
<?php
// # GetPaymentSample
// This sample code demonstrate how you can
// retrieve a list of all Payment resources
// you've created using the Payments API.
// Note various query parameters that you can
// use to filter, and paginate through the
// payments list.
// API used: GET /v1/payments/payments
require __DIR__ . '/../bootstrap.php';
use PayPal\Api\Payment;
$paymentId = "PAY-0XL713371A312273YKE2GCNI";
// ### Retrieve payment
// Retrieve the payment object by calling the
// static `get` method
// on the Payment class by passing a valid
// Payment ID
// (See bootstrap.php for more on `ApiContext`)
try {
$payment = Payment::get($paymentId, $apiContext);
} catch (PayPal\Exception\PPConnectionException $ex) {
echo "Exception:" . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData());
exit(1);
}
?>
<html>
<head>
<title>Lookup a payment</title>
</head>
<body>
<div>Retrieving Payment ID: <?php echo $paymentId;?></div>
<pre><?php var_dump($payment->toArray());?></pre>
<a href='../index.html'>Back</a>
</body>
</html>
$payId = $_POST['tx'];
$data = array(
'USER' => urlencode('<MyLogin>'),
'PWD' => urlencode('<MyPassword>'),
'SIGNATURE' => urlencode('<MyApiSignature>'),
'VERSION' => urlencode('62.0'),
'METHOD' => urlencode('GetTransactionDetails'),
'TRANSACTIONID' => urlencode($payId),
);
$url = 'https://api-3t.sandbox.paypal.com/nvp?'.http_build_query($data);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
parse_str($result, $return);
array (size=32)
'RECEIVERBUSINESS' => string '<EmailAdress>' (length=22)
'RECEIVEREMAIL' => string '<EmailAdress>' (length=22)
'RECEIVERID' => string '<RECEIVERID>' (length=13)
'PAYERID' => string '<PAYERID>' (length=13)
'PAYERSTATUS' => string 'verified' (length=8)
'COUNTRYCODE' => string 'US' (length=2)
'ADDRESSOWNER' => string 'PayPal' (length=6)
'ADDRESSSTATUS' => string 'None' (length=4)
'SALESTAX' => string '0.00' (length=4)
'SHIPAMOUNT' => string '0.00' (length=4)
'SHIPHANDLEAMOUNT' => string '0.00' (length=4)
'TIMESTAMP' => string '2014-04-17T18:15:52Z' (length=20)
'CORRELATIONID' => string 'c5b81c633c4b4' (length=13)
'ACK' => string 'Success' (length=7) // Payment status
'VERSION' => string '62.0' (length=4)
'BUILD' => string '10277387' (length=8)
'TRANSACTIONID' => string '<TRANSACTIONID>' (length=17)
'RECEIPTID' => string '<RECEIPTID>' (length=19)
'TRANSACTIONTYPE' => string 'integralEvolution' (length=17)
'PAYMENTTYPE' => string 'instant' (length=7)
'ORDERTIME' => string '2014-04-17T14:35:58Z' (length=20)
'AMT' => string '<AMT>' (length=6)
'FEEAMT' => string '<FEEAMT>' (length=4)
'TAXAMT' => string '0.00' (length=4)
'CURRENCYCODE' => string 'EUR' (length=3)
'PAYMENTSTATUS' => string 'Completed' (length=9)
'PENDINGREASON' => string 'None' (length=4)
'REASONCODE' => string 'None' (length=4)
'PROTECTIONELIGIBILITY' => string 'Ineligible' (length=10)
'L_QTY0' => string '1' (length=1)
'L_TAXAMT0' => string '0.00' (length=4)
'L_CURRENCYCODE0' => string 'EUR' (length=3)