close مشكلة عدم التحويل الي صفحة البايبال

هذا السؤال غير مجاب عنه برجاء المساعدة في الاجابات





ايرور عند التحويل لصفحة البايبال
PayPalConnectionException in PayPalHttpConnection.php line 154:
Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.
namespace App\Http\Controllers;

use App\Products;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use PayPal\Api\Amount;
use PayPal\Api\Details;
use PayPal\Api\Item;
use PayPal\Api\ItemList;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\PaymentExecution;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction;
use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;

class ProductsController extends Controller
{
    protected $apiContext;

    protected function setContext(){

        $this->apiContext = new ApiContext(
            new OAuthTokenCredential(config('payment.accounts.client_id') , config('payment.accounts.secret'))
        );

        $this->apiContext->setConfig(config('payment.setting'));

    }


    public function index()
    {
        $products = Products::get();
        return view('products' , compact('products'));
    }

    public function pay(Request $request)
    {
        $selectProducts = $request->product;
        $totalPrice = 0;

        $payer = new Payer();
        $payer->setPaymentMethod("paypal");

        $items_List = [];

        if(count($selectProducts) > 0)
        {
            $this->setContext();
            foreach ($selectProducts as $select)
            {
                $selectPro = Products::findOrFail($select);

                if ($selectPro)
                {
                    $item = new Item();
                    $item->setName($selectPro->name)
                        ->setCurrency('USD')
                        ->setQuantity(1)
                        ->setSku($selectPro->id) // Similar to `item_number` in Classic API
                        ->setPrice($selectPro->price);

                    $items_List[] = $item; // push new select item in item list
                    $totalPrice = $totalPrice + $selectPro->price;
                }
            }
        }else{
            return Redirect::back();
        }
        $itemList = new ItemList();
        $itemList->setItems($items_List);

        $details = new Details();
        $details->setShipping(0)
            ->setTax(0)
            ->setSubtotal($totalPrice);

        $amount = new Amount();
        $amount->setCurrency("USD")
            ->setTotal($totalPrice)
            ->setDetails($details);

        $transaction = new Transaction();
        $transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription("Test Payment description")
            ->setInvoiceNumber(uniqid(random_bytes(5)));

        $baseUrl = url('/');
        $redirectUrls = new RedirectUrls();
        $redirectUrls->setReturnUrl($baseUrl."/success/true")
            ->setCancelUrl($baseUrl."/success/false");

        $payment = new Payment();
        $payment->setIntent("sale")
            ->setPayer($payer)
            ->setRedirectUrls($redirectUrls)
            ->setTransactions(array($transaction));
        $request = clone $payment;

        try
        {
            $payment->create($this->apiContext);
        }
        catch (Exception $ex)
        {
            // ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex);
            exit(1);
        }

        $approvalUrl = $payment->getApprovalLink();
        session(['totalPrice' => $totalPrice]);
        return Redirect::away($approvalUrl);

        // dd($itemList);
        //  return view('products' , compact('products'));
    }


    public function makePayment($status , Request $request)
    {
        if ($status == 'true'){

            if (
                isset($request->paymentId )&& $request->paymentId != '' &&
                isset($request->token )&& $request->token != '' &&
                isset($request->PayerID )&& $request->PayerID != ''
            ){

                $this->setContext();
                $totalPrice = session('totalPrice');
                session()->forget('totalPrice');
                $paymentId = $request->paymentId;
                $payment = Payment::get($paymentId, $this->apiContext);

                $execution = new PaymentExecution();
                $execution->setPayerId($request->PayerID);

                $transaction = new Transaction();
                $amount = new Amount();
                $details = new Details();
                $details->setShipping(0)
                    ->setTax(0)
                    ->setSubtotal($totalPrice);
                $amount->setCurrency('USD');
                $amount->setTotal($totalPrice);
                $amount->setDetails($details);
                $transaction->setAmount($amount);
                $execution->addTransaction($transaction);

                try {
                    $result = $payment->execute($execution, $this->apiContext);
                    try {
                        $payment = Payment::get($paymentId, $this->apiContext);
                    } catch (Exception $ex) {

                        // ResultPrinter::printError("Get Payment", "Payment", null, null, $ex);
                        exit(1);
                    }
                } catch (Exception $ex) {
                    //  ResultPrinter::printError("Executed Payment", "Payment", null, null, $ex);
                    exit(1);
                }

                // ResultPrinter::printResult("Get Payment", "Payment", $payment->getId(), null, $payment);

                dd($payment);
            }
        }

        return Redirect::back();

    }
}


Mohmd Zamli

Mohmd Zamli
2017-01-07 19:48:30

الاجابات (3) من (3)

68 # Mohmd Zamli
07 جانفي 2017 / 08:52

بيانات البايبال صحيحة لانه اشتغل معي مرة وخصم المبلغ وعرض بيانات العملية عن طريق ميثود dd()


67 # Abdel Aziz Hassan
07 جانفي 2017 / 08:00

المشكلة مش في الكود المشكلة ممكن تكون في البينات الخاصة بباي بال في الاتصال بتاعك او حتي في الابلكش اللي انت عملتى
علي باي بال راجع كل الخطوات الاول لانه هو بيبقلك في مشكلة في accessing

Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/payment.

66 # Mohmd Zamli
07 جانفي 2017 / 07:55

تم التحويل لمرة واحدة وتم خصم المبلغ وبعدها يظهر الايرور بالرغم من عدم تعديل الكود


1

اجابة

54 # بعد اذن حضرتك عايز اعرف ازاي اعمل ك..
قسم : Laravel 5.3 بواسطة : رضا محمد

الكويري الاول لتجميع مرتبات العاملين مثلا الكويري الثاني لمعرفة عدد العاملين بقسم معين الكويري الثالث ازاي اعمل جملة select بناء علي شروط متعدده م..

1

اجابة

61 # laravel 5.4 mix error
قسم : Laravel 5.3 بواسطة : Om

قمت بانشاء مشروع laravel 5.4 لكن المشكلة ان الخاصية الجديدة mix بديل gulp لايعمل معي اطلاقا هل هناك حل

0

اجابة

59 # شبكة محلية
قسم : Laravel 5.3 بواسطة : رضا محمد

السلام عليكم لدي مشروع للعاملين بواسطة لارافيل وأود تحزيم المشروع ومشاركته علي شبكه محلية وبعد اذن حضرتك هل يمكن بواسطة لارافيل الحصول علي نسخة احتي..

1

اجابة

71 # استخراج بيانات الموضوع بستخدام العن..
قسم : Laravel 5.3 بواسطة : Ali Mosbah

مرحبا انا عندي مشكلة في استخراج بيانات الخبر من العنوان اي يكون الرابط على هذا الشكل localhost:8000/news/barshilunat-ealaa-atlitiku-madridBarcel..

1

اجابة

105 # voyager admin panel
قسم : Laravel 5.3 بواسطة : Mostafa Abdelglil

voyager used users table and User model to make admin login but in my project i use users table and it's model to make users in my website login and r..

1

اجابة

63 # كيفية عمل اكثر من لغة لل validati..
قسم : Laravel 5.3 بواسطة : ضياء هشام

اريد ان اعرف كيفية عمل اكثر من لغة validation فهل من طريقة ما للاضافة

1

اجابة

52 # مكتبة تدعم الدراج و الدروب فى لارا..
قسم : Laravel 5.3 بواسطة : أحمد مصطفى

is there any package support laravel that handle many pictures to upload (drag-drop) and also i can receive it from request ?

1

اجابة

86 # بخصوص repository design pattren
قسم : Laravel 5.3 بواسطة : محمد

السلام عليكم بخصوص repository design pattren تابعت الشروحات انت ذكرت بأنه سيتم اضافة دروس تشرح الفكرة بشكل اعمق .. اين اجد تلك الدروس ؟ وهل بإمكان..

2

اجابة

96 # جلب الداتا من الثلاث حقول
قسم : Laravel 5.3 بواسطة : Awat Ahmad

السلام عليكم اريد جلب الداتا من الثلاث حقول (blog , comments , user) یعنى اريد جلب جميع البوستات مع صاحب البوست و مع الكومينتات و صاحب الكومنيتات

1

اجابة

34 # كيفية رفع ال laravel project الى س..
قسم : Laravel 5.3 بواسطة : ضياء هشام

هل يمكنني نقل المشروع مباشتراً ام هنالك طريقة اخرى وكبف يمكنني ان انقل ال db هل اخذ backup ام هنالك طريقة ثانية لو يوجد درس فيديو او نص قد يكون..