Omnipay / Paypal Gateway - 交易显示成功,而Paypal Sandbox账户不显示交易的债务/信用

时间:2014-03-01 21:25:09

标签: paypal paypal-sandbox omnipay

1)我正在试图让Omnipay / Paypal工作一段时间。我的问题是我得到“确认=成功”,但是当进入沙盒测试帐户时,买家和卖家都没有将预订的交易显示出来。

2)我也感觉并非所有的API都被正确地转移到Paypal(例如Brandname使用Angell库正确显示,但是Omnipay没有采用变量。

任何可以帮助解决这两个问题的人。 - 请参阅下面的代码。我在这里检查了其他文章,他们没有解决我的问题。

<?php
//
// Input Variables
//


// Config
$domain = "http://localhost";
$directory = "http://localhost/omnipay/";
$returnURL = $directory."success.php";      
$cancelURL = $directory."cancel.php";   
$landingpage = "Billing";                                               

$brandname = "TEST COMPANY";;   
$customerservicenumber  = "";

// Purchase Data
$invoiceNumber = "0000200202023939";        
$currencyCode = "USD";

// PRODUCT DATA 

$subscriptionName = "XXX";                          
$subscriptionDesc = "ZZZ";  
$subscriptionAmt = "5.00";                      



require 'vendor/autoload.php';

use Omnipay\Omnipay;


$gateway = Omnipay::create('PayPal_Express');
$gateway->setUsername('XXX');
$gateway->setPassword('XXX');
$gateway->setSignature('XXX');
$gateway->setTestMode(true);

$response = $gateway->purchase(
    array(
        // Settings
        'brandname' =>  '',
            'customerservicenumber'=> '',           
    'cancelURL' =>  $cancelURL,
    'returnURL' =>  $returnURL,
            'reqconfirmshipping' => '0',
            'noshipping' => '1',                            

    'allownote' =>  '0',    

    // Buyer data
    'email' =>  $email,                         
    'description'=> $subscriptionDesc,
    'amount'=>  $subscriptionAmt,
    'currency'=>    $currencyCode,
     )  
)->send();

$response->redirect();

?>

success.php是相同的脚本,除了结尾

...

)->send();
$data = $response->getData();

//echo '<pre>'; print_r($data);

if($data['ACK'] == "Success"){
echo "ACK = Success!!!!!!";
}
?>

如上所述,我总是在最后获得ACK =成功,但不会从沙盒用户帐户中扣除金额。出了点问题。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

看起来你还没有完成购买。你的success.php应该有类似的东西:

$response = $gateway->completePurchase($params)->send();

在您重定向到Paypal之前,将您的交易参数保存在会话变量中,然后在Paypal返回时使用它们完成购买。查看示例代码以获取更多详细信息:https://github.com/omnipay/example/blob/master/index.php#L181