当前位置: 首页 > 知识库问答 >
问题:

PayPal SDK和If语句发布[重复]

贲俊才
2023-03-14

我正在设置一个支付系统,当使用“paypal”帖子将结帐页面提交给自己时,paypal sdk代码将执行并重定向到paypal,我遇到的问题是当我使用我得到的if语句时出错:

解析错误:语法错误,第14行 /path/to/file/index.php中的意外'use'(T_USE)

require('' . $_SERVER['DOCUMENT_ROOT'] . '/assets/include/config.php');
if (isset($_POST['paypal'])) {
    // Work out price and add to db
    $total = 0.00;
    foreach ($_SESSION['SHOPPING_CART'] as $itemNumber => $item) {
        $total = $total + $item['Itemprice'];
    }

// Set some example data for the payment.
$currency = 'GBP';
$amountPayable = $total;
$invoiceNumber = uniqid();

use PayPal\Api\Amount;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction;

// Includes PayPal Config
require $_SERVER['DOCUMENT_ROOT'] . '/assets/include/pp-bootstrap.php';

// Create a payer
$payer = new Payer();
$payer->setPaymentMethod('paypal');

// Sets ammount for transaction
$amount = new Amount();
$amount->setCurrency($currency)->setTotal($amountPayable);

// Creates a new transaction
$transaction = new Transaction();
$transaction->setAmount($amount)->setDescription('Some description about the payment being made')->setInvoiceNumber($invoiceNumber);

// Sets the return URL's
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($return_url)->setCancelUrl($cancel_url);

// Creates a payment using the 
$payment = new Payment();
$payment->setIntent('sale')->setPayer($payer)->setTransactions([$transaction])->setRedirectUrls($redirectUrls);

try {
    $payment->create($apiContext);
} catch (Exception $e) {
    throw new Exception('Unable to create a link to paypal, this may be due to an issue with PayPal, please try again later.');
}

header('location:' . $payment->getApprovalLink());
exit(1);

共有1个答案

蓝昊然
2023-03-14

我用“使用PayPal\Api\Amount如果您只是将其移动到类调用中,它就可以正常工作:

// Create a payer
    $payer = new PayPal\Api\Payer();
    $payer->setPaymentMethod('paypal');
    
    // Sets amount for transaction
    $amount = new PayPal\Api\Amount();
    $amount->setCurrency($currency)->setTotal($amountPayable);
    
    // Creates a new transaction
    $transaction = new PayPal\Api\Transaction();
    $transaction->setAmount($amount)->setDescription('Some description about the payment being made')->setInvoiceNumber($invoiceNumber);
    
    // Sets the return URL's
    $redirectUrls = new PayPal\Api\RedirectUrls();
    $redirectUrls->setReturnUrl($return_url)->setCancelUrl($cancel_url);
    
    // Creates a payment using the 
    $payment = new PayPal\Api\Payment();
    $payment->setIntent('sale')->setPayer($payer)->setTransactions([$transaction])->setRedirectUrls($redirectUrls);
 类似资料:
  • 两者之间有实际区别吗 和 除了第一个更短之外,一个优先级更高,还是更慢? 编辑: 我意识到这可能并不清楚,但通常是。

  • 有人能用简单的英语解释一下这句话背后的逻辑吗? 假设mContainsLoadingRow为布尔值,如果< code>mContainsLoadingRow为< code>true, 然后返回< code > getContentDataSize()1 。 如果没有,则返回 这是正确的看待方式吗?

  • 着色器语言GLSL中关于if语句、for语句的使用,和javascript语言、C语言中的if语句、for语句执行逻辑规则基本一致,这里默认你已经有一定的编程基础,也就不做过多讲解,只是简单说明一下。 单独使用if if(x>100){ gl_FragColor = vec4(1.0,0.0,0.0,1.0);//红色 } if-else形式 bool colorBool; // 根据布尔值

  • 我正在学习一门在线编码课程,该课程导入了appstore上应用程序的大量数据,并要求我们计算出游戏或社交网络应用程序的平均评分。执行此操作时,我意外地键入了if语句,如上图所示: 这是我不明白的,总共有7197个应用程序,如果我使用上面的if语句,我的games\u social\u评级列表的长度是7197。游戏应用程序总数为3862,社交网络应用程序总数为167。7197是从哪里来的?当我输入上

  • 我所说的“空if语句”是指这样的东西(注意分号): 我在考虑这个应用程序时遇到了麻烦。使用time循环,您可以这样做: 但对于if语句没有这样的应用。此外,Java编译器在遇到此类语句时不会发出错误或警告。这可能会导致大而无声的问题,尤其是对于冗长而复杂的语句: 我的问题是:为什么Java中允许这样做?更重要的是,我是否可以启用一个选项,以便在发生这种情况时引发警告? (之前有人问过关于C#的这个

  • 今天我得到了一个关于代码的评论,考虑到我在学校作业中检查变量是真还是假的方式。 我编写的代码如下所示: 他们说这样写更好/更整洁: 例如,0和1不应该在该变量中。