我正在实施 Authorize.net 信用卡 API。API 总是给我一个 200 响应代码,无论交易是成功还是被拒绝。但它为成功的交易提供了一个响应主体,为拒绝的交易提供了不同的响应主体。
type AuthorizeApprovedResponse struct {
TransactionResponse struct {
ResponseCode string `json:"responseCode"`
AuthCode string `json:"authCode"`
AvsResultCode string `json:"avsResultCode"`
CvvResultCode string `json:"cvvResultCode"`
CavvResultCode string `json:"cavvResultCode"`
TransID string `json:"transId"`
RefTransID string `json:"refTransID"`
TransHash string `json:"transHash"`
TestRequest string `json:"testRequest"`
AccountNumber string `json:"accountNumber"`
AccountType string `json:"accountType"`
Messages []struct {
Code string `json:"code"`
Description string `json:"description"`
} `json:"messages"`
UserFields []struct {
Name string `json:"name"`
Value string `json:"value"`
} `json:"userFields"`
TransHashSha2 string `json:"transHashSha2"`
SupplementalDataQualificationIndicator int `json:"SupplementalDataQualificationIndicator"`
NetworkTransID string `json:"networkTransId"`
} `json:"transactionResponse"`
RefID string `json:"refId"`
Messages struct {
ResultCode string `json:"resultCode"`
Message []struct {
Code string `json:"code"`
Text string `json:"text"`
} `json:"message"`
} `json:"messages"`
}
这是我的问题,要使用哪个结构。我在考虑尝试使用 interface{} 然后尝试将其转换为结构?
err := json.Unmarshal(b, &whichStructToUse)
if err != nil {
panic(err.Error())
}
当我不知道要使用哪个结构时,关于如何解组响应的任何建议?
哆啦的时光机
相关分类