• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    העברת נתונים בן שלוחה לשלוחה

    עזרה הדדית למשתמשים מתקדמים
    3
    17
    418
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • L
      lealam @מנסה נערך לאחרונה על ידי

      @מנסה

      איך API בונה שלוחה?
      לא הכרתי כזה דבר 😞

      ט תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • ט
        טוסטוס לא יעבור @lealam נערך לאחרונה על ידי

        @lealam
        למה לא לעשות את שניהם על אותה שלוחה?

        L תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • L
          lealam @טוסטוס לא יעבור נערך לאחרונה על ידי

          @טוסטוס-לא-יעבור אמר בהעברת נתונים בן שלוחה לשלוחה:

          @lealam
          למה לא לעשות את שניהם על אותה שלוחה?

          איך?

          ט תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • ט
            טוסטוס לא יעבור @lealam נערך לאחרונה על ידי

            @lealam
            ב API כמובן, רק אם זה בנייה שלכם (של השלוחה)!

            L תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • L
              lealam @טוסטוס לא יעבור נערך לאחרונה על ידי

              @טוסטוס-לא-יעבור
              כלאמר להפעיל קריאת POST בשביל נדרים פלוס?

              ט תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • ט
                טוסטוס לא יעבור @lealam נערך לאחרונה על ידי

                @lealam
                פשוט לעשות סליקת אשראי עם כל הפרמטרים שצריך בסוף הקוד

                מ תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • מ
                  מנסה מומחה @טוסטוס לא יעבור נערך לאחרונה על ידי

                  @טוסטוס-לא-יעבור

                  לכאורה באותה שלוחה זה לא יעבוד כי הכלל הוא שתוך כדי שמאזין נמצא בשלוחה הההגדרות לא משתנות כלפיו, רק למאזינים הבאים.

                  דבר נוסף שאם זה יהיה בשלוחה עצמה, ומאזין נוסף יעלה לקו, הוא יקבל את ההגדרות של המאזין הקודם.
                  [ולכן הצעתי לפתוח שלוחה לכל אחד]

                  @lealam

                  יש הגדרה של עדכון הגדרות EXT בAPI
                  שם ניתן ליצור שלוחה חדשה עם ההגדרות שרוצים, ברגע ששולחים פקודה כזאת נוצרת שלוחה עם כל מה שכתוב בפקודה, הAPI הראשון יחזיר GO_TO לשלוחה שנוצרה, ושם כבר מופיע הסכום...

                  ט L 2 תגובות תגובה אחרונה תגובה ציטוט 1
                  • ט
                    טוסטוס לא יעבור @מנסה נערך לאחרונה על ידי

                    @מנסה
                    למיטב הבנתי זה שהסכום קיים וצריך רק סליקת אשראי.
                    ולמה זה משתנה למאזין הבא מאיפה הבאת את זה?

                    תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • מ
                      מנסה מומחה @lealam נערך לאחרונה על ידי

                      @lealam אמר בהעברת נתונים בן שלוחה לשלוחה:

                      @טוסטוס-לא-יעבור

                      הכוונה שיש לי שלוחת API שמחשבת כמה מישהו צריך לשלם
                      ואז אני עוברת לשלוחה שתגבה כסף דרך ימות משיח
                      איךאני מעבירה את הסכום בין השלוחות?

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • L
                        lealam @מנסה נערך לאחרונה על ידי

                        @מנסה אמר בהעברת נתונים בן שלוחה לשלוחה:

                        @טוסטוס-לא-יעבור

                        לכאורה באותה שלוחה זה לא יעבוד כי הכלל הוא שתוך כדי שמאזין נמצא בשלוחה הההגדרות לא משתנות כלפיו, רק למאזינים הבאים.

                        דבר נוסף שאם זה יהיה בשלוחה עצמה, ומאזין נוסף יעלה לקו, הוא יקבל את ההגדרות של המאזין הקודם.
                        [ולכן הצעתי לפתוח שלוחה לכל אחד]

                        @lealam

                        יש הגדרה של עדכון הגדרות EXT בAPI
                        שם ניתן ליצור שלוחה חדשה עם ההגדרות שרוצים, ברגע ששולחים פקודה כזאת נוצרת שלוחה עם כל מה שכתוב בפקודה, הAPI הראשון יחזיר GO_TO לשלוחה שנוצרה, ושם כבר מופיע הסכום...

                        יכול להדגים בכמה שורות קוד?

                        מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • מ
                          מנסה מומחה @lealam נערך לאחרונה על ידי מנסה

                          @lealam

                          את מה להדגים את יצירת שלוחה?

                          אם זו הכוונה, אז הרעיון הוא ככה,
                          אני יוצא מתוך הנחה שיש לכם את הסכום כמשתנה בPHP , אם כן תוסיפו את הקוד הבא.
                          [רק לשנות את המערכת, הסיסמה, והשלוחה, ואם אתם לא בנדרים פלוס להחליף את השורות הרלוונטיות בקוד]

                          הסיבה שעשיתי שיקריא את הסכום, כי בזמן הזה השלוחה ודאי מספיקה לעלות ללא שתיווצר שגיאה במעבר לשלוחה שאינה קיימת או שמעודכנת עדיין ללקוח הקודם.

                          //להוסיף את זה בראש הדף 
                          if (isset($_GET['hangup'])) {exit();}
                          
                          $mahahrechet = 07731300000;
                          $pas =123456;
                          $e = משתנה המכיל את הסכום לחיוב;
                          $shlucha =מספר השלוחה להעלות אליה את הקובץ [שלוחה חדשה שלא קיימת];
                          $hagdarot = "type=credit_card
                          credit_card_type=nedarim_plus
                          credit_card_terminal_number=כאן יש לרשום את מספר המוסד שקיבלתם מנדרים פלוס
                          billing_sum=$e";
                          
                          echo "id_list_message=t-הסכום לתשלום הוא .d-$ e&go_to_folder=/$shlucha&";
                          
                          
                          //זיהוי מערכת להעלות את הקובץ
                          $con = new connecting_to_yemot_api($mahahrechet, $pas);
                          //יוצר קובץ להעלאה
                          $File = new oFile('ext.ini', 'text/plain', $hagdarot);
                          //מיקום הקובץ
                          $body = array
                          (
                          'path' => 'ivr2:/$shlucha/ext.ini',
                          'convertAudio' => 0,
                          'fileUpload' => $File
                          );
                          //הפעלת העלאת הקובץ
                          $a = $con -> connecting('UploadFile', $body);
                          
                          $b = $a->responseStatus; 
                          
                          
                           
                          //הדפס תשובה
                          //print_r($a);
                          
                          //המחלקה
                          class BodyPost
                          {
                          // part "multipart/form-data"
                          public static function PartPost($name, $val)
                          {
                          $body = 'Content-Disposition: form-data; name="' . $name . '"';
                          // check instance of oFile
                          if($val instanceof oFile)
                          {
                          $file = $val->Name();
                          $mime = $val->Mime();
                          $cont = $val->Content();
                          
                          $body .= '; filename="' . $file . '"' . "\r\n";
                          $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
                          $body .= $cont."\r\n";
                          } else $body .= "\r\n\r\n".$val."\r\n";
                          return $body;
                          }
                          
                          public static function Get(array $post, $delimiter = '-------------0123456789')
                          {
                          if(is_array($post) && !empty($post))
                          {
                          $bool = true;
                          //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
                          if($bool)
                          {
                          $ret = '';
                          foreach($post as $name=>$val)
                          $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
                          $ret .= "--" . $delimiter . "--\r\n";
                          } else $ret = http_build_query($post);
                          } else throw new \Exception('Error input param!');
                          return $ret;
                          }
                          }
                          
                          class oFile
                          {
                          private $name;
                          private $mime;
                          private $content;
                          
                          public function __construct($name, $mime=null, $content=null)
                          {
                          if(is_null($content))
                          {
                          $info = pathinfo($name);
                          // check is exist and readable file
                          if(!empty($info['basename']) && is_readable($name))
                          {
                          $this->name = $info['basename'];
                          // get MIME
                          $this->mime = mime_content_type($name);
                          // load file
                          $content = file_get_contents($name);
                          if($content!==false)
                          {
                          $this->content = $content;
                          }
                          else
                          {
                          throw new Exception('Don`t get content - "'.$name.'"');
                          }
                          }
                          else
                          {
                          throw new Exception('Error param');
                          }
                          }
                          else
                          {
                          $this->name = $name;
                          if(is_null($mime)) $mime = mime_content_type($name);
                          $this->mime = $mime;
                          $this->content = $content;
                          };
                          }
                          
                          public function Name() { return $this->name; }
                          
                          public function Mime() { return $this->mime; }
                          
                          public function Content() { return $this->content; }
                          
                          }
                          
                          class connecting_to_yemot_api
                          {
                          public $token;
                          
                          const URL = 'https://www.call2all.co.il/ym/api/';
                          
                          public function __construct($user_name, $password)
                          {
                          $body = array('username' => $user_name, 'password' => $password);
                          
                          $body = http_build_query($body);
                          
                          $opts = array('http' => array(
                          
                          'method' => 'POST',
                          
                          'header' => "Content-Type: application/x-www-form-urlencoded",
                          
                          'content' => $body,
                          
                          'follow_location' => false) );
                          
                          $context = stream_context_create($opts);
                          
                          $url = self::URL.'Login';
                          
                          $result = file_get_contents($url, FALSE, $context);
                          
                          $result = json_decode($result);
                          
                          if($result -> responseStatus == 'OK')
                          {
                          $this -> token = $result -> token;
                          
                          return TRUE;
                          }
                          else
                          {
                          throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
                          }
                          }
                          
                          public function __destruct()
                          {
                          $this -> connecting('Logout');
                          }
                          
                          public function connecting($action, $body = array())
                          {
                          $delimiter = '----'.uniqid();
                          
                          $body['token'] = $this -> token;
                          
                          $body = BodyPost::Get($body, $delimiter);
                          
                          $opts = array('http' =>
                          array(
                          'method' => 'POST',
                          'header' => 'Content-Type: multipart/form-data; boundary='.$delimiter,
                          'content' => $body,
                          'follow_location' => false
                          )
                          );
                          $context = stream_context_create($opts);
                          
                          $url = self::URL.$action;
                          
                          $result = file_get_contents($url, FALSE, $context);
                          
                          $headers = $this -> parseHeaders($http_response_header);
                          
                          if($headers['Content-Type'][0] == 'application/json')
                          {
                          return json_decode($result);
                          }
                          else
                          {
                          return $result;
                          }
                          }
                          
                          private function parseHeaders($headers)
                          {
                          // פונקציה שמקבלת מערך של שורות הכותרות
                          // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
                          
                          
                          // מערך הכותרות
                          $head = array();
                          
                          foreach( $headers as $k=>$v )
                          {
                          $t = explode( ':', $v, 2 );
                          
                          if( isset( $t[1] ) )
                          {
                          if($t[0] == 'Set-Cookie')
                          {
                          $CookiesArr = array();
                          
                          $cookies = explode( ';', $t[1]);
                          
                          foreach($cookies as $cookie)
                          {
                          $c = explode( '=', $cookie);
                          
                          if( isset( $c[1] ) )
                          {
                          $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
                          }
                          else
                          {
                          $CookiesArr[] = trim( $c[0] );
                          }
                          }
                          
                          $head[ trim($t[0]) ] = $CookiesArr;
                          }
                          elseif($t[0] == 'Content-Type')
                          {
                          $arr = array();
                          
                          $children = explode( ';', $t[1]);
                          
                          foreach($children as $child)
                          {
                          $c = explode( '=', $child);
                          
                          if( isset( $c[1] ) )
                          {
                          $arr[ trim($c[0]) ] = trim( $c[1] );
                          }
                          else
                          {
                          $arr[] = trim( $c[0] );
                          }
                          }
                          
                          $head[ trim($t[0]) ] = $arr;
                          }
                          else
                          {
                          $head[ trim($t[0]) ] = trim( $t[1] );
                          }
                          }
                          else
                          {
                          $head[] = $v;
                          if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                          {
                          $head['reponse_code'] = intval($out[1]);
                          }
                          }
                          }
                          return $head;
                          }
                          }
                          
                          L 2 תגובות תגובה אחרונה תגובה ציטוט 1
                          • L
                            lealam @מנסה נערך לאחרונה על ידי

                            פוסט זה נמחק!
                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • L
                              lealam @מנסה נערך לאחרונה על ידי

                              @מנסה
                              תודההה

                              תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • פוסט ראשון
                                פוסט אחרון