Jump to content
php.lv forumi
Sign in to follow this  
nesija

Paypal mehānisms

Recommended Posts

Lietoju paypal rest api sdk. Neskaidrība ir par to, kurš identifikators jāsaglabā datubāzē, lai pēc veiksmīga maksājuma varētu uzmeklēt Order un atzīmēt to kā PAID. Man šķiet ka jāizmanto payment id (piemēram PAY-4VV03021UC634025WK53EA3I). Tomēr paypal sūta atpakaļ arī kaut kādu token=EC-8U3318706J8963711, nesaprotu kam tas ir vajadzīgs? Datubāzē es glabāju tikai payment_id. Vai es izmantoju pareizo identifikatoru, vai arī būtu jāizmanto cits?

// .. (izlaista $payment objekta konfigurācija)

$payment->create($paypal); // Nosūtam datus paypalam

// Paypal atsūta mums atpakaļ payment ID
$payment_id = $payment->getId(); // e.g. PAY-0DM20443V9262974MK53D5DI 

// Saglabājam savā datubāzē transakciju. Sasaistam payment_id un mūsu order.
PaypalTransaction::create([
    'payment_id' => $payment_id,
    'order_id' => $order->id
])

// Redirektē klientu uz paypalu
return redirect()->to($payment->getApprovalLink());

Kad redirektē atpakaļ:

//URL šāds: http://example.com/paypal-success?paymentId=PAY-4VV03021UC634025WK53EA3I&token=EC-8U3318706J8963711&PayerID=78BATUTT6KSYA

// Iegūstam GET datus.
$payment_id = $request->get('paymentId');
$payer_id = $request->get('PayerId');

// Executojam maksājumu.
$paypal->execute($payment_id, $payer_id);

// Atrodam orderi pēc paymentId un atzīmējam, ka viņš ir samaksāts
$transaction = PaypalTransaction::where(['payment_id' => $payment_id])->firstOrFail();
$transaction->order->update(['paid' => 1]);
Edited by nesija

Share this post


Link to post
Share on other sites

Tad nāksies atzīt, ka manas lasītprasmes ir gaužām sliktas. Man par to kauns.

 

Tomēr es uzmanīgi izstudēju paypal piedāvātos koda paraugus:

https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/payments/CreatePaymentUsingPayPal.php

https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/payments/ExecutePayment.php

 

Taču tajos nav ne miņas no tieši tās daļas, kur tiek uzmeklēts Orderis mūsu datubāzē.

Tur pat netiek izmantota, piemēram, `getId()` metode.

 

Vai kāds cilvēks ar labāku lasītprasmi kā man varētu norādīt uz vietu dokumentācijā, kur par šo ir minēts? Paldies.

Edited by nesija

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...