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

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

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

      משתמש במודול API
      רוצה עם הנתונים שחוזרים לי לעבור לשלוחה אחרת ושם לבצע משהו
      אפשרי?

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

        @lealam
        תפרט יותר!

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