diff --git a/src/Message/PurchaseRequest.php b/src/Message/PurchaseRequest.php
index <HASH>..<HASH> 100644
--- a/src/Message/PurchaseRequest.php
+++ b/src/Message/PurchaseRequest.php
@@ -177,8 +177,11 @@ class PurchaseRequest extends AbstractRequest
 
         if ($this->getSecretWord()) {
             $data['signatureFields'] = $this->getSignatureFields();
-            $signature_data = array($this->getSecretWord(),
-                $data['instId'], $data['amount'], $data['currency'], $data['cartId']);
+            $signature_data = array($this->getSecretWord());
+            foreach (explode(':', $data['signatureFields']) as $parameterName) {
+                $signature_data[] = $data[$parameterName];
+            }
+
             $data['signature'] = md5(implode(':', $signature_data));
         }
apply signatureFields config in when building signature data