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

اجابة

162 # مسار التعلم
قسم : Laravel 5.3 بواسطة : Bahij Syofi

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

2

اجابة

64 # كيفية عمل الل cookies
قسم : Laravel 5.3 بواسطة : ضياء هشام

هل هنالك طريقة لعمل ال cookies بدون استخدام ال response facade و هل يمكنني اني استخدم الصيغة العادية لعمل cookies المستخدمة بون ال laravel

1

اجابة

68 # كيفية تغعيل ال secure logo in brows..
قسم : Laravel 5.3 بواسطة : ضياء هشام

سؤالي هو كيف افعل علامة ال scure غهل هي من الدومين و ال host او يوجد طريقة وكيف ؟؟؟

7

اجابة

104 # URL Arabic Validation
قسم : Laravel 5.3 بواسطة : Mohamed Abdelaziz Ahmed

كيفيه عمل Validation URL باللغه العربيه اذا كان URL يحتوى على لغه عربيه من خلال الفريم ورك Laravel وذلك مثل http://www.youm7.com/Section/أخبار-عاجلة..

0

اجابة

27 # table
قسم : Laravel 5.3 بواسطة : Mebarkia Khaled

لديا مشكل في اسماء الجداول لعني لديا 3 جداول produit subcategory category كامل لهم نفسال محتوي nom $Produitallz = Produit::join('Souscategorie..

3

اجابة

124 # مشكل في ارسال Sms ب nexmo
قسم : Laravel 5.3 بواسطة : Nassimweb15

السلام عليكم و رحمة الله ، لقد جربت شرح ارسال اشعارات عن طريق رسائل الموبيل laravel و لكن عند محاولة الارسال اتلقى رسالة الخطا التالية Class 'App\N..

2

اجابة

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

i want add comma after each item in foreach loop

1

اجابة

177 # trying to send sms notifications
قسم : Laravel 5.3 بواسطة : Maryam

im trying to send sms notification with nexmo like you tutorial i get this erro r cURL error 60: SSL certificate problem: self signed certificate in..

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

1

اجابة

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

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