fix(transaction):can not do local execute and check (#262)

diff --git a/core/api.go b/core/api.go
index f141f3f..a8941b6 100644
--- a/core/api.go
+++ b/core/api.go
@@ -56,6 +56,7 @@
 const (
 	CommonProducer  = ProducerModel(1)
 	OrderlyProducer = ProducerModel(2)
+	TransProducer   = ProducerModel(3)
 )
 
 func (mode ProducerModel) String() string {
@@ -64,6 +65,8 @@
 		return "CommonProducer"
 	case OrderlyProducer:
 		return "OrderlyProducer"
+	case TransProducer:
+		return "TransProducer"
 	default:
 		return "Unknown"
 	}
diff --git a/core/transaction_funcs.go b/core/transaction_funcs.go
index a41dd4c..ddab6aa 100644
--- a/core/transaction_funcs.go
+++ b/core/transaction_funcs.go
@@ -39,10 +39,10 @@
 	message := cMsgToGo(msg)
 	listenerWrap, exist := producer.(*defaultTransactionProducer).listenerFuncsMap.Load(cproducer)
 	if !exist {
-		status := listenerWrap.(TransactionLocalListener).Execute(message, arg)
-		return C.int(status)
+		return C.int(UnknownTransaction)
 	}
-	return C.int(UnknownTransaction)
+	status := listenerWrap.(TransactionLocalListener).Execute(message, arg)
+	return C.int(status)
 }
 
 //export localTransactionCheckerCallback
@@ -55,8 +55,8 @@
 	message := cmsgExtToGo(msg)
 	listener, exist := producer.(*defaultTransactionProducer).listenerFuncsMap.Load(cproducer)
 	if !exist {
-		status := listener.(TransactionLocalListener).Check(message, arg)
-		return C.int(status)
+		return C.int(UnknownTransaction)
 	}
-	return C.int(UnknownTransaction)
+	status := listener.(TransactionLocalListener).Check(message, arg)
+	return C.int(status)
 }
diff --git a/demos/transaction_producer.go b/demos/transaction_producer.go
index a4b64b2..8cf4112 100644
--- a/demos/transaction_producer.go
+++ b/demos/transaction_producer.go
@@ -35,8 +35,8 @@
 				Channel:   "ALIYUN/OtherChannel",
 			},
 		},
-		//Set to Common Producer as default.
-		ProducerModel: rocketmq.CommonProducer,
+		//Set to Trans Producer as default.
+		ProducerModel: rocketmq.TransProducer,
 	}
 	sendTransactionMessage(pConfig)
 }