From 363f01857eda480fb546a6b5391d9436ef14b377 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 20 Jun 2018 11:47:24 +0800 Subject: [PATCH] - fix elm callback sign error(it's different from call elm API). --- platform/elmapi/elmapi.go | 10 ++++++++-- platform/elmapi/elmapi_test.go | 15 ++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/platform/elmapi/elmapi.go b/platform/elmapi/elmapi.go index 289ef5da..e6166954 100644 --- a/platform/elmapi/elmapi.go +++ b/platform/elmapi/elmapi.go @@ -74,8 +74,14 @@ func (e *ELMAPI) signParamsMap(mapData map[string]interface{}, prefix string) st keyValues := make([]string, 0) for k, v := range mapData { if k != signKey { - vBytes := utils.MustMarshal(v) - keyValues = append(keyValues, k+"="+string(vBytes)) + vStr := "" + if prefix == "" { // callback sign + vStr = fmt.Sprint(v) + } else { // call sign + vBytes := utils.MustMarshal(v) + vStr = string(vBytes) + } + keyValues = append(keyValues, k+"="+vStr) } } diff --git a/platform/elmapi/elmapi_test.go b/platform/elmapi/elmapi_test.go index 1c722199..9d3df4cd 100644 --- a/platform/elmapi/elmapi_test.go +++ b/platform/elmapi/elmapi_test.go @@ -15,7 +15,12 @@ var ( func init() { logger, _ := zap.NewDevelopment() sugarLogger = logger.Sugar() - elmapi = NewELMAPI("bab2a27f99562f394b411dbb9a6214da", "KLRDcOZGrk", "1fc221f8265506531da36fb613d5f5ad673f2e9a", sugarLogger, true) + + // sandbox + elmapi = NewELMAPI("2d2b583447b04b6bba5a6f3faed3559b", "RwT214gAsS", "56afff4b9ebd8a7eb532d18fa33f17be57f9b9db", sugarLogger, false) + + // prod + // elmapi = NewELMAPI("bab2a27f99562f394b411dbb9a6214da", "KLRDcOZGrk", "1fc221f8265506531da36fb613d5f5ad673f2e9a", sugarLogger, true) } func TestTest(t *testing.T) { @@ -46,3 +51,11 @@ func TestGetOrder(t *testing.T) { } } } + +func TestCallbackSign(t *testing.T) { + jsonStr := `{"requestId":"200016348669063447","type":18,"appId":78247922,"message":"{\"orderId\":\"3024923917769149510\",\"state\":\"settled\",\"shopId\":157492364,\"updateTime\":1529465510,\"role\":1}","shopId":157492364,"timestamp":1529465510255,"signature":"D65F917D93B4F599B85486C799599141","userId":336072266322770688}` + msg, response := elmapi.GetMsgFromData([]byte(jsonStr)) + if response != nil || msg == nil { + t.Fatal("Something wrong") + } +}