正在设置 PayPal PHP 应用程序上线
Setting PayPal PHP Application live
我遵循了一些关于如何使用 PHP SDK 通过 PayPal 向人们收费的教程。只要我处于测试模式,这一切都非常有效,但如果我将我的 API 键更改为 "live" 键,我只会收到 HTTP 错误 401。
我明白这是因为我必须将应用程序设置为 "Live".
我遵循了 PayPal GitHub 页面上的指南。
(https://github.com/paypal/PayPal-PHP-SDK/wiki/Going-Live)
别担心,我不会为实际 Web 执行此操作,我只是想回到 PHP 并且我无法配置此脚本,这让我抓狂。
我有以下 "charge.php":
require 'app/start.php';
use PayPal\Api\Payer;
use PayPal\Api\Item;
use PayPal\Api\ItemList;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Payment;
if(!isset($_POST['product'])){
echo $_POST['product'];
die("Nope");
}
$product="Premium";
$price="1.00";
$shipping="0.00";
$total = $price+$shipping;
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$item = new Item();
$item->setName($product)
->setCurrency('EUR')
->setQuantity(1)
->setPrice($price);
$itemList = new ItemList();
$itemList->setItems([$item]);
$details = new Details();
$details->setShipping($shipping)
->setSubtotal($price);
$amount = new Amount();
$amount->setCurrency('EUR')
->setTotal($total)
->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($itemList)
->setDescription($product)
//UserID
->setInvoiceNumber(rand());
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl('/paid.php?sucess=true')
->setCancelUrl('/paid.php?sucess=false');
$payment = new Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions([$transaction]);
try{
$payment->create($paypal);
} catch (Exception $e){
die($e);
}
$approvalUrl=$payment->getApprovalLink();
header("Location: {$approvalUrl}");
以及以下 "start.php" 以及我的 API 凭据:
require 'vendor/autoload.php';
define('SITE_URL', '/charge.php');
$paypal = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'xx',
'xx'
)
);
有人可以给我提示,我需要在哪里配置应用程序才能使用 PayPays Live API?我在 carge.php 中尝试过,但我只得到 PHP 错误,我使用了未定义的变量。
我说的是来自 PayPays Github 的以下 Snipit:
$apiContext->setConfig(
array(
...
'mode' => 'live',
...
)
);
如有任何帮助,我们将不胜感激。
干杯,弗洛
好的,我明白了。
对于遇到同样问题的任何人:
要使配置数组起作用,您还必须将 Nameclass 放在那里。
所以正确的 "start.php" 应该是这样的:
<?php
use \PayPal\Rest\ApiContext;
use \PayPal\Auth\OAuthTokenCredential;
require 'vendor/autoload.php';
define('SITE_URL', 'charge_paypal.php');
$paypal = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'x',
'x'
)
);
$paypal->setConfig([
'mode' => 'live',
'log.LogEnabled' => true,
'log.FileName' => 'PayPal.log',
'log.LogLevel' => 'FINE'
]);
?>
我遵循了一些关于如何使用 PHP SDK 通过 PayPal 向人们收费的教程。只要我处于测试模式,这一切都非常有效,但如果我将我的 API 键更改为 "live" 键,我只会收到 HTTP 错误 401。 我明白这是因为我必须将应用程序设置为 "Live".
我遵循了 PayPal GitHub 页面上的指南。 (https://github.com/paypal/PayPal-PHP-SDK/wiki/Going-Live)
别担心,我不会为实际 Web 执行此操作,我只是想回到 PHP 并且我无法配置此脚本,这让我抓狂。
我有以下 "charge.php":
require 'app/start.php';
use PayPal\Api\Payer;
use PayPal\Api\Item;
use PayPal\Api\ItemList;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Payment;
if(!isset($_POST['product'])){
echo $_POST['product'];
die("Nope");
}
$product="Premium";
$price="1.00";
$shipping="0.00";
$total = $price+$shipping;
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$item = new Item();
$item->setName($product)
->setCurrency('EUR')
->setQuantity(1)
->setPrice($price);
$itemList = new ItemList();
$itemList->setItems([$item]);
$details = new Details();
$details->setShipping($shipping)
->setSubtotal($price);
$amount = new Amount();
$amount->setCurrency('EUR')
->setTotal($total)
->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($itemList)
->setDescription($product)
//UserID
->setInvoiceNumber(rand());
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl('/paid.php?sucess=true')
->setCancelUrl('/paid.php?sucess=false');
$payment = new Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions([$transaction]);
try{
$payment->create($paypal);
} catch (Exception $e){
die($e);
}
$approvalUrl=$payment->getApprovalLink();
header("Location: {$approvalUrl}");
以及以下 "start.php" 以及我的 API 凭据:
require 'vendor/autoload.php';
define('SITE_URL', '/charge.php');
$paypal = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'xx',
'xx'
)
);
有人可以给我提示,我需要在哪里配置应用程序才能使用 PayPays Live API?我在 carge.php 中尝试过,但我只得到 PHP 错误,我使用了未定义的变量。
我说的是来自 PayPays Github 的以下 Snipit:
$apiContext->setConfig(
array(
...
'mode' => 'live',
...
)
);
如有任何帮助,我们将不胜感激。 干杯,弗洛
好的,我明白了。 对于遇到同样问题的任何人:
要使配置数组起作用,您还必须将 Nameclass 放在那里。 所以正确的 "start.php" 应该是这样的:
<?php
use \PayPal\Rest\ApiContext;
use \PayPal\Auth\OAuthTokenCredential;
require 'vendor/autoload.php';
define('SITE_URL', 'charge_paypal.php');
$paypal = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'x',
'x'
)
);
$paypal->setConfig([
'mode' => 'live',
'log.LogEnabled' => true,
'log.FileName' => 'PayPal.log',
'log.LogLevel' => 'FINE'
]);
?>