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

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


3

اجابة

48 # تمرير البيانات إلى Bootstrap carous..
قسم : Laravel 5.3 بواسطة : ابوبكر البكري

كيف يمكنني تمرير البيانات والصور من الكنترولر إلى قالب البليد لعرضها في bootstrap carousal

0

اجابة

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

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

1

اجابة

45 # لنك الخاص بالفيو مش شغال
قسم : Laravel 5.3 بواسطة : MOhamed Reda

الطريقة المشروحة فى الفديو موقع مصغر الكود دة اتلغى و بكتب الكود دة برضوة مش شغال ممكن تدينى الكود الخاص انى اعمل لنك ل vue-router جربت طرق كتير و مش..

1

اجابة

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

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

1

اجابة

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

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

2

اجابة

107 # تصميم لوحة تحكم متعدد المستخدمين
قسم : Laravel 5.3 بواسطة : Rami Awadallah

مرحباُ مشكور اخي على هذا العمل الرائع انا احد المتتبعين لموقعكم ولدي طلب بخصوص عمل لوحة تحكم متعدد المستخدمين Multi user admin على Laravel 5.4 اطي..

1

اجابة

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

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

2

اجابة

46 # بحث
قسم : Laravel 5.3 بواسطة : Ahmed Farid

بدور على لينك سلسله دروس حضرتك بتاع شرح الجديد فى laravel 5.3 و هل اقدر اشتغل و اطبقها على كورس العقارات الخاص بك هو و كورس الشات ام يحدث مشكلة

7

اجابة

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

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

3

اجابة

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

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