#php #paypal
#php #paypal
Вопрос:
Я работаю с PayPal-PHP-SDK, как предложено в документах разработчика. В настоящее время я запускаю этот код:
http://paypal.github.io/PayPal-PHP-SDK/
Я просто хочу изменить название бренда и добавить логотип, но я не знаю, как этого добиться.
Комментарии:
1. Возможно, вам придется войти в учетную запись PayPal, чтобы настроить страницу, или лучше взять отпуск.
2. Я пошел дальше и удалил ответ из вашего вопроса и добавил его в качестве ответа сообщества wiki ниже. В будущем, вместо редактирования вопроса с ответом, просто добавьте ответ самостоятельно и примите его ниже.
Ответ №1:
Поскольку PayPal обновил свой дизайн, изменения, которые вы можете внести в настройки профиля, больше не будут работать.
Чтобы изменить дизайн, вам сначала нужно создать веб-профиль:
// Create the WebProfile
$presentation = new Presentation();
$presentation->setLogoImage("http://www.yeowza.com/favico.ico")
->setBrandName("YeowZa! Paypal")
->setLocaleCode("US");
$inputFields = new InputFields();
$inputFields->setAllowNote(true)
->setNoShipping(1)
->setAddressOverride(0);
$webProfile = new WebProfile();
$webProfile->setName("YeowZa! T-Shirt Shop" . uniqid())
->setPresentation($presentation)
->setInputFields($inputFields);
try {
$createdProfile = $webProfile->create($paypal);
$createdProfileID = json_decode($createdProfile);
$profileid = $createdProfileID->id;
} catch(PayPalExceptionPayPalConnectionException $pce) {
echo '<pre>',print_r(json_decode($pce->getData())),"</pre>";
exit;
}
Идентификатор созданного профиля был сохранен в $profileid.Этот идентификатор необходимо установить через. Установите experienceprofileid($profileid) при создании платежа.
// Create the Payment
$product = $_POST['product'];
$price = 4;
$shipping = 2;
$total = $price $shipping;
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item1 = new Item();
$item1->setName('Ground Coffee 40 oz') ->setCurrency('EUR') ->setQuantity(1) ->setSku("123123")->setPrice(6.5); // Similar to `item_number` in Classic API
$item2 = new Item();
$item2->setName('Granola bars') ->setCurrency('EUR') ->setQuantity(1) ->setSku("321321")->setPrice(1.5); // Similar to `item_number` in Classic API
$itemList = new ItemList();
$itemList->setItems(array($item1, $item2));
$details = new Details();
$details->setShipping(1.2) ->setTax(1.3) ->setSubtotal(8);
$amount = new Amount();
$amount->setCurrency("EUR") ->setTotal(10.5) ->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($itemList)->setDescription("Payment description")->setInvoiceNumber(uniqid());
$baseUrl = "http://localhost/abiunity/test.php";
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($baseUrl."?success=true")->setCancelUrl($baseUrl."?success=false");
$payment = new Payment();
$payment->setExperienceProfileId($profileid)->setIntent("sale") ->setPayer($payer) ->setRedirectUrls($redirectUrls) ->setTransactions(array($transaction));
//$request = clone $payment;
try {
$payment->create($paypal);
$approvalUrl = $payment->getApprovalLink();
header("Location:".$approvalUrl);
exit;
} catch(PayPalExceptionPayPalConnectionException $pce) {
echo '<pre>',print_r(json_decode($pce->getData())),"</pre>";
exit;
}
Я надеюсь, что это кому-то поможет и сэкономит немного времени 🙂
Комментарии:
1. Примечание: Если вы привыкли к примеру кода с GitHub,
$paypal
в этом ответе то же самое, что и$apiContext
в примере кода.