original_string: public function creditPart($invNo, $credNo = "")
      {
          $this->_checkInvNo($invNo);
          $this->_checkCredNo($credNo);
  
          if ($this->goodsList === null || empty($this->goodsList)) {
              $this->_checkArtNos($this->artNos);
          }
  
          //function activate_part_digest
          $string = $this->_eid . ":" . $invNo . ":";
  
          if ($this->artNos !== null && !empty($this->artNos)) {
              foreach ($this->artNos as $artNo) {
                  $string .= $artNo["artno"] . ":". $artNo["qty"] . ":";
              }
          }
  
          $digestSecret = self::digest($string . $this->_secret);
          //end activate_part_digest
  
          $paramList = array(
              $this->_eid,
              $invNo,
              $this->artNos,
              $credNo,
              $digestSecret
          );
  
          if ($this->goodsList !== null && !empty($this->goodsList)) {
              $paramList[] = 0;
              $paramList[] = $this->goodsList;
          }
  
          $this->artNos = array();
  
          self::printDebug('credit_part', $paramList);
  
          return $this->xmlrpc_call('credit_part', $paramList);
      }
code: public function creditPart($invNo, $credNo = "")
      {
          $this->_checkInvNo($invNo);
          $this->_checkCredNo($credNo);
  
          if ($this->goodsList === null || empty($this->goodsList)) {
              $this->_checkArtNos($this->artNos);
          }
  
          //function activate_part_digest
          $string = $this->_eid . ":" . $invNo . ":";
  
          if ($this->artNos !== null && !empty($this->artNos)) {
              foreach ($this->artNos as $artNo) {
                  $string .= $artNo["artno"] . ":". $artNo["qty"] . ":";
              }
          }
  
          $digestSecret = self::digest($string . $this->_secret);
          //end activate_part_digest
  
          $paramList = array(
              $this->_eid,
              $invNo,
              $this->artNos,
              $credNo,
              $digestSecret
          );
  
          if ($this->goodsList !== null && !empty($this->goodsList)) {
              $paramList[] = 0;
              $paramList[] = $this->goodsList;
          }
  
          $this->artNos = array();
  
          self::printDebug('credit_part', $paramList);
  
          return $this->xmlrpc_call('credit_part', $paramList);
      }
code_tokens: public function creditPart ( $ invNo , $ credNo = "" ) { $ this -> _checkInvNo ( $ invNo ) ; $ this -> _checkCredNo ( $ credNo ) ; if ( $ this -> goodsList === null || empty ( $ this -> goodsList ) ) { $ this -> _checkArtNos ( $ this -> artNos ) ; } //function activate_part_digest $ string = $ this -> _eid . ":" . $ invNo . ":" ; if ( $ this -> artNos !== null && ! empty ( $ this -> artNos ) ) { foreach ( $ this -> artNos as $ artNo ) { $ string .= $ artNo [ "artno" ] . ":" . $ artNo [ "qty" ] . ":" ; } } $ digestSecret = self :: digest ( $ string . $ this -> _secret ) ; //end activate_part_digest $ paramList = array ( $ this -> _eid , $ invNo , $ this -> artNos , $ credNo , $ digestSecret ) ; if ( $ this -> goodsList !== null && ! empty ( $ this -> goodsList ) ) { $ paramList [ ] = 0 ; $ paramList [ ] = $ this -> goodsList ; } $ this -> artNos = array ( ) ; self :: printDebug ( 'credit_part' , $ paramList ) ; return $ this -> xmlrpc_call ( 'credit_part' , $ paramList ) ; }
docstring: Performs a partial refund on an invoice, part payment or mobile purchase.
  
  <b>Note</b>:<br>
  You need to call {@link Klarna::addArtNo()} first.<br>
  
  @param string $invNo  Invoice number.
  @param string $credNo Credit number.
  
  @see  Klarna::addArtNo()
  
  @throws KlarnaException
  @return string  Invoice number.
docstring_tokens: Performs a partial refund on an invoice part payment or mobile purchase .