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

اجابة

31 # laravel 5.3+vue 2.0
قسم : Laravel 5.3 بواسطة : Mohaned Mohamed

شكرا لمجهودك

0

اجابة

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

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

1

اجابة

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

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

1

اجابة

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

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

1

اجابة

152 # Deseign pattern
قسم : Laravel 5.3 بواسطة : Mohammed

Hi, Thanks for the tutorial ?Can i get the folder that are you using for the pattern layout

2

اجابة

76 # add comma after each iten in foreac..
قسم : Laravel 5.3 بواسطة : Kasper

i want add comma after each item in foreach loop

2

اجابة

80 # سؤال عن موضوع ال tags
قسم : Laravel 5.3 بواسطة : ضياء هشام

انا قمت بتطبيق عن دورة البحث المقدمة من موقعكم و بعد ذلك عملت نضام لكي اضيف ال cat & section & video & tags ولكي يوجد لدي مشكلة في كيفية اضافة اكثر..

0

اجابة

90 # replace english nubers with indian..
قسم : Laravel 5.3 بواسطة : Kasper

replace [1234567890] with ["١٢٣٤٥٦٧٨٩٠"]

1

اجابة

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

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

1

اجابة

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

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