728x90 AdSpace

  • Latest News

      Thursday, 16 July 2020

      [PHP] How to integrated Paypal with PHP

      Welcome back to Learn Tech Tips blogspot. How are you today? Hope you well ~
      Today topic I will show you how to integrated paypal with PHP

      PayPal Holdings, Inc. is an American company operating a worldwide online payments system that supports online money transfers and serves as an electronic alternative to traditional paper methods like checks and money orders

      These are paypal url helpful link: https://developer.paypal.com/developer/applications/

      First, you have to recreate a App information:
      Client Id and Client Credentials



      https://api.sandbox.paypal.com/v1/oauth2/token




      If you running above api got below message, that mean you run api had succeed

      How to pass the params:
      Let take a look on postman demo
      Authorization: username (client id, client credentials)


      Headers.



      Body: grant_type:



      // php code here
      // Author: Zidane (huuvi168@gmail.com)
      // "intent": "order" 用途,如果商戶有過渡期,一般會onhold 客人信用卡信用額,到佐貨品發貨時扣除;或客人在過渡期期間申請退款,直接release 信用額,避免手續費
      // 如果"intent": "sale", 直接扣款,無佐中間onhold
      public function create_paypal_payment($invoice_number, $price, $description, $access_token, $currency = 'HKD', $role) {

      $curl = curl_init();
      curl_setopt_array($curl, array(
      CURLOPT_URL => Environment::read('paypal.url_create_payment'),
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "POST",
      ));


      $intent = "sale";
      $return_url = Environment::read('paypal.url_return_teacher');
      $cancel_url = Environment::read('paypal.url_cancel');

      if ($role == Environment::read('member.student')) {
      $return_url = Environment::read('paypal.url_return_student');
      $cancel_url = Environment::read('paypal.url_cancel');
      $intent = 'authorize'; // need approve by teacher

      }

      $params = array(

      "intent" => $intent,
      'payer' => array(
      'payment_method' => 'paypal',
      ),
      'redirect_urls' => array(
      "return_url" => $this->get_current_host_server_name() . $return_url, // "http://localhost/masterx/api/payment/payments/get_info_from_return_url_paypal.json", // get payer_id from this link
      "cancel_url" => $this->get_current_host_server_name() . $cancel_url, // "https://youtu.be/FigKDd_yhFo"
      ),
      'transactions' => array(
      array(
      'invoice_number' => $invoice_number, // must be different, because same invoice which paid, so the paypal will block it (Duplicate invoice Id detected.).
      'amount' => array(
      'total' => $price,
      'currency' => $currency,
      ),
      'description' => $description,
      )
      ),
      );

      //save transaction for later call

      curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($params));
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);

      if (!empty($access_token) && !is_null($access_token)) {
      curl_setopt($curl, CURLOPT_HTTPHEADER,
      array( // use this so we MUST post to header (postman)
      "authorization: Bearer " . $access_token,
      "cache-control: no-cache",
      "content-type: application/json"
      )
      );
      } else {
      curl_setopt($curl, CURLOPT_HTTPHEADER,
      array( // use this so we MUST post to header (postman)
      "accept: application/json",
      "accept-language: en_US",
      "authorization: Basic ". base64_encode($this->client_id . ":" . $this->secret),
      "cache-control: no-cache",
      "content-type: application/x-www-form-urlencoded"
      )
      );
      }

      $response = curl_exec($curl);
      $err = curl_error($curl);
      curl_close($curl);
      $result = array();

      if ($err) {
      $result = array(
      'err' => $err,
      );

      } else {
      $result = json_decode($response, true);
      }
      return $result;
      }






      Hope you solved your problem,
      Any feedback or question, leave your comment, we can discuss about it~
      Zidane
      • Blogger Comments
      • Facebook Comments

      0 comments:

      Post a Comment

      Item Reviewed: [PHP] How to integrated Paypal with PHP Rating: 5 Reviewed By: Unknown