|
@@ -53,15 +53,22 @@ func (cli *DongWuSms) SendUserLoginCode(req UserLoginSmsCodeReq) (result UserLog
|
|
|
return
|
|
|
}
|
|
|
if apiResp.Status == "success" {
|
|
|
- if apiResp.Result.Result == "0" {
|
|
|
- result.Success = true
|
|
|
- result.Message = apiResp.Result.Desc
|
|
|
- }else{
|
|
|
- result.Success = false
|
|
|
- result.Message = fmt.Sprintf("发送失败, 错误码: %d, 错误信息: %s", apiResp.Result.Result, apiResp.Result.Desc)
|
|
|
+ if apiResp.Result != "" {
|
|
|
+ var resultDetail DongWuSmsResultDetail
|
|
|
+ if e := json.Unmarshal([]byte(apiResp.Result), &resultDetail); e != nil {
|
|
|
+ err = fmt.Errorf("parse result detail err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if resultDetail.Result == "0" {
|
|
|
+ result.Success = true
|
|
|
+ result.Message = resultDetail.Desc
|
|
|
+ } else {
|
|
|
+ result.Success = false
|
|
|
+ result.Message = fmt.Sprintf("发送失败, 错误码: %s, 错误信息: %s", resultDetail.Result, resultDetail.Desc)
|
|
|
+ }
|
|
|
}
|
|
|
return
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
result.Success = false
|
|
|
result.Message = apiResp.Message
|
|
|
}
|
|
@@ -83,13 +90,15 @@ type DongWuSmsApiParams struct {
|
|
|
type DongWuSmsApiResult struct {
|
|
|
Status string `json:"status"`
|
|
|
Message string `json:"message"`
|
|
|
- SmsType string `json:"smsType"` //短信平台类型,仅当status=”success”时不为空,“ssdj”代表三三得九平台,“dh3t”代表大汉三通平台
|
|
|
- Result struct {
|
|
|
- Msgid string `json:"msgid"`
|
|
|
- Result string `json:"result"`
|
|
|
- Desc string `json:"desc"`
|
|
|
- FailPhones string `json:"failPhones"`
|
|
|
- } `json:"result"`
|
|
|
+ SmsType string `json:"smsType"` //短信平台类型,仅当status="success"时不为空,"ssdj"代表三三得九平台,"dh3t"代表大汉三通平台
|
|
|
+ Result string `json:"result"`
|
|
|
+}
|
|
|
+
|
|
|
+type DongWuSmsResultDetail struct {
|
|
|
+ Msgid string `json:"msgid"`
|
|
|
+ Result string `json:"result"`
|
|
|
+ Desc string `json:"desc"`
|
|
|
+ FailPhones string `json:"failPhones"`
|
|
|
}
|
|
|
|
|
|
func (cli *DongWuSms) sendUserLoginCode(mobile, apiURL, appKey, content string) (apiResp *DongWuSmsApiResult, err error) {
|
|
@@ -132,5 +141,17 @@ func (cli *DongWuSms) sendUserLoginCode(mobile, apiURL, appKey, content string)
|
|
|
err = fmt.Errorf("parse response err: %s", e.Error())
|
|
|
return
|
|
|
}
|
|
|
+ // Parse the result string if status is success
|
|
|
+ if apiResp.Status == "success" && apiResp.Result != "" {
|
|
|
+ var resultDetail DongWuSmsResultDetail
|
|
|
+ if e := json.Unmarshal([]byte(apiResp.Result), &resultDetail); e != nil {
|
|
|
+ err = fmt.Errorf("parse result detail err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // Update the response handling in SendUserLoginCode
|
|
|
+ if resultDetail.Result == "0" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
return
|
|
|
}
|