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

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


0

اجابة

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

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

2

اجابة

87 # عاوز اخلي قيمه في متغير لغرض استخدا..
قسم : Laravel 5.3 بواسطة : Mahdi Sahib

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

0

اجابة

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

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

1

اجابة

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

شكرا لمجهودك

1

اجابة

15 # استفسار بخصوص الـ recurring payment
قسم : Laravel 5.3 بواسطة : Ahmed Hussien

بعد اذن حضرتك ممكن مجموعة شروحات لطريقة الدفع الشهري او السنوي باستخدام stripe او paypal مع وجود خاصية الاعضاء وهكذا مثل ما هو متبع هنا في موقع 5dmat-..

1

اجابة

19 # فى الدورة الجديدة درس لطريقة تسطيب..
قسم : Laravel 5.3 بواسطة : MOhamed Reda

مشاكل فى التسطيب

1

اجابة

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

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

3

اجابة

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

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

1

اجابة

40 # vue-router
قسم : Laravel 5.3 بواسطة : MOhamed Reda

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

5

اجابة

39 # مشكلة في Middlewareفي ملف ال A..
قسم : Laravel 5.3 بواسطة : ضياء هشام

انا منصب لارافل و شغال بمشروع و وصلت لجزيئية المستخدمين وكلمت كل شئ لكن لا يوجد كلاس ال Authenticate في مجلد ال midellware على عكس كلاس RedirectIfAut..