| 
                         /** 
* @author xxxxxxxx 
* @brief 简介: 
* @date 15/9/2 
* @time 下午5:00 
*/ 
use PayPalApiPayer; 
use PayPalApiItem; 
use PayPalApiItemList; 
use PayPalApiDetails; 
use PayPalApiAmount; 
use PayPalApiTransaction; 
use PayPalApiRedirectUrls; 
use PayPalApiPayment; 
use PayPalExceptionPayPalConnectionException; 
 
require "app/start.php"; if (!isset($_POST['product'], $_POST['price'])) {     die("lose some params"); } $product = $_POST['product']; $price = $_POST['price']; $shipping = 2.00; //运费  $total = $price + $shipping;  $payer = new Payer(); $payer->setPaymentMethod('paypal');  $item = new Item(); $item->setName($product)     ->setCurrency('USD')     ->setQuantity(1)     ->setPrice($price);  $itemList = new ItemList(); $itemList->setItems([$item]);  $details = new Details(); $details->setShipping($shipping)     ->setSubtotal($price);  $amount = new Amount(); $amount->setCurrency('USD')     ->setTotal($total)     ->setDetails($details);  $transaction = new Transaction(); $transaction->setAmount($amount)     ->setItemList($itemList)     ->setDescription("支付描述内容")     ->setInvoiceNumber(uniqid());  $redirectUrls = new RedirectUrls(); $redirectUrls->setReturnUrl(SITE_URL . '/pay.php?success=true')     ->setCancelUrl(SITE_URL . '/pay.php?success=false');  $payment = new Payment(); $payment->setIntent('sale')     ->setPayer($payer)     ->setRedirectUrls($redirectUrls)     ->setTransactions([$transaction]);  try {     $payment->create($paypal); } catch (PayPalConnectionException $e) {     echo $e->getData();     die(); }  $approvalUrl = $payment->getApprovalLink(); header("Location: {$approvalUrl}"); 
 
checkout.php通过表单提交上来的参数对支付具体细节和参数进行初始化和设置。这里只列出了常用的部分。paypal提供了很多参数设置。具体更丰富的可以自己参考paypal官方开发者文档。 
checkout.php设置完参数之后。会生成一个支付链接。用header跳转到这个支付链接(就是paypal的支付页面)到这个支付页面上面就可以用你的sandbox提供的buyer账号去支付了。截图如下: 
  
用buyer账号支付完成之后。去看看你的sandbox的商家账户余额吧。就会发现已经收到了扣除手续费外的钱了。 
这里支付成功 或者 失败后还有一个回调的处理。回调处理的php文件再上面的checkout.php里面的setReturnUrl处设置。这里设置的是/pay.php?success=true 
接下来我们来看看pay.php是怎么简单处理回调的。先贴上pay.php的代码: 
php 
require 'app/start.php'; 
 
use PayPalApiPayment; 
use PayPalApiPaymentExecution; 
 
if(!isset($_GET['success'], $_GET['paymentId'], $_GET['PayerID'])){ 
    die(); 
} 
 
if((bool)$_GET['success']=== 'false'){ 
 
    echo 'Transaction cancelled!'; 
    die(); 
} 
 
$paymentID = $_GET['paymentId']; 
$payerId = $_GET['PayerID']; 
 
$payment = Payment::get($paymentID, $paypal); 
 
$execute = new PaymentExecution(); 
$execute->setPayerId($payerId); 
 
try{ 
    $result = $payment->execute($execute, $paypal); 
}catch(Exception $e){ 
    die($e); 
} 
echo '支付成功!感谢支持!'; 
 
好了。到这里一个简单的paypal支付的demo其实已经走通了。懂得支付原理之后、想要再你自己的项目里面进行更丰富的扩展、就去paypal的官方文档查看更多具体的开发项设置。包括交易明细的获取等等都是可以实现的。这里就不具体讲下去了。 
                         (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |