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

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

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

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

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

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

        @lealam

        מעלה את זה לשלוחה ההיא

        אם זה מיידית,

        [אחרת שני משתמשים באותו זמן ישבשו את המערכת]

        הכי טוב ליצור שלוחת תשלום מיוחדת לכל אחד אם כלל הנגדרות הנצרכות ומייד אחרי שיש את הסכום לתשלום המשתמש עובר לשלוחה שנבנית עבורו [למשל ששם השלוחה הוא הטלפון שלו] ושם מתבצע לו התשלום לפי הסכום המוגדר

        את השלוחה כמובן יבנה הAPI הראשון

        L תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • 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
                                  • פוסט ראשון
                                    פוסט אחרון