From b9d5e40fe122ecfb1758ab6feaa3a5d816a5fa1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Mon, 24 Apr 2023 12:23:15 +0800 Subject: [PATCH] - update ejiaofei --- service/ejiaofei/check_cost.go | 13 ++-- service/ejiaofei/chongzhi_jkorders.go | 14 +++-- service/ejiaofei/const.go | 73 +++++++++++++++++++++++ service/ejiaofei/gprs_chongzhi_advance.go | 12 ++-- service/ejiaofei/money_jkuser.go | 12 ++-- service/ejiaofei/query_jkorders.go | 14 +++-- service/ejiaofei/query_txproduct.go | 12 ++-- service/ejiaofei/txchongzhi.go | 12 ++-- 8 files changed, 125 insertions(+), 37 deletions(-) diff --git a/service/ejiaofei/check_cost.go b/service/ejiaofei/check_cost.go index 5dfa1f40..5ec7d91d 100644 --- a/service/ejiaofei/check_cost.go +++ b/service/ejiaofei/check_cost.go @@ -21,15 +21,15 @@ type CheckCostResult struct { Result CheckCostResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newCheckCostResult(result CheckCostResponse, body []byte, http gorequest.Response, err error) *CheckCostResult { - return &CheckCostResult{Result: result, Body: body, Http: http, Err: err} +func newCheckCostResult(result CheckCostResponse, body []byte, http gorequest.Response) *CheckCostResult { + return &CheckCostResult{Result: result, Body: body, Http: http} } // CheckCost 会员订单成本价查询接口 -func (c *Client) CheckCost(ctx context.Context, orderId string) *CheckCostResult { +// orderID 用户提交的订单号 用户提交的订单号,最长32位(用户保证其唯一性) +func (c *Client) CheckCost(ctx context.Context, orderId string) (*CheckCostResult, error) { // 参数 param := gorequest.NewParams() param.Set("orderid", orderId) @@ -38,8 +38,11 @@ func (c *Client) CheckCost(ctx context.Context, orderId string) *CheckCostResult c.config.signStr = fmt.Sprintf("userid%vpwd%vorderid%v", c.GetUserId(), c.GetPwd(), orderId) // 请求 request, err := c.request(ctx, apiUrl+"/checkCost.do", params, http.MethodGet) + if err != nil { + return newCheckCostResult(CheckCostResponse{}, request.ResponseBody, request), err + } // 定义 var response CheckCostResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newCheckCostResult(response, request.ResponseBody, request, err) + return newCheckCostResult(response, request.ResponseBody, request), err } diff --git a/service/ejiaofei/chongzhi_jkorders.go b/service/ejiaofei/chongzhi_jkorders.go index 7e356041..a0f5a513 100644 --- a/service/ejiaofei/chongzhi_jkorders.go +++ b/service/ejiaofei/chongzhi_jkorders.go @@ -26,18 +26,17 @@ type ChOngZhiJkOrdersResult struct { Result ChOngZhiJkOrdersResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newChOngZhiJkOrdersResult(result ChOngZhiJkOrdersResponse, body []byte, http gorequest.Response, err error) *ChOngZhiJkOrdersResult { - return &ChOngZhiJkOrdersResult{Result: result, Body: body, Http: http, Err: err} +func newChOngZhiJkOrdersResult(result ChOngZhiJkOrdersResponse, body []byte, http gorequest.Response) *ChOngZhiJkOrdersResult { + return &ChOngZhiJkOrdersResult{Result: result, Body: body, Http: http} } // ChOngZhiJkOrders 话费充值接口 -// orderid 用户提交的订单号 用户提交的订单号,最长32位(用户保证其唯一性) +// orderID 用户提交的订单号 用户提交的订单号,最长32位(用户保证其唯一性) // face 充值面值 以元为单位,包含10、20、30、50、100、200、300、500 移动联通电信 // account 手机号码 需要充值的手机号码 -func (c *Client) ChOngZhiJkOrders(ctx context.Context, orderID string, face int, account string) *ChOngZhiJkOrdersResult { +func (c *Client) ChOngZhiJkOrders(ctx context.Context, orderID string, face int, account string) (*ChOngZhiJkOrdersResult, error) { // 参数 param := gorequest.NewParams() param.Set("orderid", orderID) @@ -49,8 +48,11 @@ func (c *Client) ChOngZhiJkOrders(ctx context.Context, orderID string, face int, c.config.signStr = fmt.Sprintf("userid%vpwd%vorderid%vface%vaccount%vamount1", c.GetUserId(), c.GetPwd(), orderID, face, account) // 请求 request, err := c.request(ctx, apiUrl+"/chongzhi_jkorders.do", params, http.MethodGet) + if err != nil { + return newChOngZhiJkOrdersResult(ChOngZhiJkOrdersResponse{}, request.ResponseBody, request), err + } // 定义 var response ChOngZhiJkOrdersResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newChOngZhiJkOrdersResult(response, request.ResponseBody, request, err) + return newChOngZhiJkOrdersResult(response, request.ResponseBody, request), err } diff --git a/service/ejiaofei/const.go b/service/ejiaofei/const.go index 1db3d117..55e45c4f 100644 --- a/service/ejiaofei/const.go +++ b/service/ejiaofei/const.go @@ -1,5 +1,7 @@ package ejiaofei +import "fmt" + const ( apiUrl = "http://api.ejiaofei.net:11140" ) @@ -7,3 +9,74 @@ const ( const ( LogTable = "ejiaofei" ) + +// OperatorInfo 运营商描述 +func OperatorInfo(operator string) string { + switch operator { + case "mobile": + return "移动" + case "unicom": + return "联通" + case "telecom": + return "电信" + } + return fmt.Sprintf("%v", operator) +} + +// StateInfo 状态描述 +func StateInfo[ST int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | string](state ST) string { + stateString := fmt.Sprintf("%v", state) + switch stateString { + case "0": + return "充值中" + case "1": + return "充值成功" + case "2": + return "充值失败" + case "8": + return "等待扣款" + } + return stateString +} + +// ErrorInfo 错误描述 +func ErrorInfo[ET int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | string](error ET) string { + errorString := fmt.Sprintf("%v", error) + switch errorString { + case "0": + return "无错误" + case "1003": + return "用户ID或接口密码错误" + case "1004": + return "用户IP错误" + case "1005": + return "用户接口已关闭" + case "1006": + return "加密结果错误" + case "1007": + return "订单号不存在" + case "1011": + return "号码归属地未知" + case "1013": + return "手机对应的商品有误或者没有上架" + case "1014": + return "无法找到手机归属地" + case "1015": + return "余额不足" + case "1016": + return "QQ号格式错误" + case "1017": + return "产品未分配用户,联系商务" + case "1018": + return "订单生成失败" + case "1019": + return "充值号码与产品不匹配" + case "1020": + return "号码运营商未知" + case "9998": + return "参数有误" + case "9999": + return "系统错误" + } + return errorString +} diff --git a/service/ejiaofei/gprs_chongzhi_advance.go b/service/ejiaofei/gprs_chongzhi_advance.go index d2eee62a..3f9e5d2b 100644 --- a/service/ejiaofei/gprs_chongzhi_advance.go +++ b/service/ejiaofei/gprs_chongzhi_advance.go @@ -39,23 +39,25 @@ type GprsChOngZhiAdvanceResult struct { Result GprsChOngZhiAdvanceResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newGprsChOngZhiAdvanceResult(result GprsChOngZhiAdvanceResponse, body []byte, http gorequest.Response, err error) *GprsChOngZhiAdvanceResult { - return &GprsChOngZhiAdvanceResult{Result: result, Body: body, Http: http, Err: err} +func newGprsChOngZhiAdvanceResult(result GprsChOngZhiAdvanceResponse, body []byte, http gorequest.Response) *GprsChOngZhiAdvanceResult { + return &GprsChOngZhiAdvanceResult{Result: result, Body: body, Http: http} } // GprsChOngZhiAdvance 流量充值接口 -func (c *Client) GprsChOngZhiAdvance(ctx context.Context, notMustParams ...gorequest.Params) *GprsChOngZhiAdvanceResult { +func (c *Client) GprsChOngZhiAdvance(ctx context.Context, notMustParams ...gorequest.Params) (*GprsChOngZhiAdvanceResult, error) { // 参数 params := gorequest.NewParamsWith(notMustParams...) // 签名 c.config.signStr = fmt.Sprintf("userid%vpwd%vorderid%vaccount%vgprs%varea%veffecttime%vvalidity%vtimes%v", c.GetUserId(), c.GetPwd(), params["orderid"], params["account"], params["gprs"], params["area"], params["effecttime"], params["validity"], params["times"]) // 请求 request, err := c.request(ctx, apiUrl+"/gprsChongzhiAdvance.do", params, http.MethodGet) + if err != nil { + return newGprsChOngZhiAdvanceResult(GprsChOngZhiAdvanceResponse{}, request.ResponseBody, request), err + } // 定义 var response GprsChOngZhiAdvanceResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newGprsChOngZhiAdvanceResult(response, request.ResponseBody, request, err) + return newGprsChOngZhiAdvanceResult(response, request.ResponseBody, request), err } diff --git a/service/ejiaofei/money_jkuser.go b/service/ejiaofei/money_jkuser.go index 13107494..dd72a555 100644 --- a/service/ejiaofei/money_jkuser.go +++ b/service/ejiaofei/money_jkuser.go @@ -19,21 +19,23 @@ type MoneyJkUserResult struct { Result MoneyJkUserResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newMoneyJkUserResult(result MoneyJkUserResponse, body []byte, http gorequest.Response, err error) *MoneyJkUserResult { - return &MoneyJkUserResult{Result: result, Body: body, Http: http, Err: err} +func newMoneyJkUserResult(result MoneyJkUserResponse, body []byte, http gorequest.Response) *MoneyJkUserResult { + return &MoneyJkUserResult{Result: result, Body: body, Http: http} } // MoneyJkUser 用户余额查询 -func (c *Client) MoneyJkUser(ctx context.Context) *MoneyJkUserResult { +func (c *Client) MoneyJkUser(ctx context.Context) (*MoneyJkUserResult, error) { // 签名 c.config.signStr = fmt.Sprintf("userid%vpwd%v", c.GetUserId(), c.GetPwd()) // 请求 request, err := c.request(ctx, apiUrl+"/money_jkuser.do", map[string]interface{}{}, http.MethodGet) + if err != nil { + return newMoneyJkUserResult(MoneyJkUserResponse{}, request.ResponseBody, request), err + } // 定义 var response MoneyJkUserResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newMoneyJkUserResult(response, request.ResponseBody, request, err) + return newMoneyJkUserResult(response, request.ResponseBody, request), err } diff --git a/service/ejiaofei/query_jkorders.go b/service/ejiaofei/query_jkorders.go index 490d56c4..75ba6655 100644 --- a/service/ejiaofei/query_jkorders.go +++ b/service/ejiaofei/query_jkorders.go @@ -26,16 +26,15 @@ type QueryJkOrdersResult struct { Result QueryJkOrdersResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newQueryJkOrdersResult(result QueryJkOrdersResponse, body []byte, http gorequest.Response, err error) *QueryJkOrdersResult { - return &QueryJkOrdersResult{Result: result, Body: body, Http: http, Err: err} +func newQueryJkOrdersResult(result QueryJkOrdersResponse, body []byte, http gorequest.Response) *QueryJkOrdersResult { + return &QueryJkOrdersResult{Result: result, Body: body, Http: http} } // QueryJkOrders 通用查询接口 -// orderid 用户提交的订单号 用户提交的订单号,最长32位(用户保证其唯一性) -func (c *Client) QueryJkOrders(ctx context.Context, orderId string) *QueryJkOrdersResult { +// orderId 用户提交的订单号 用户提交的订单号,最长32位(用户保证其唯一性) +func (c *Client) QueryJkOrders(ctx context.Context, orderId string) (*QueryJkOrdersResult, error) { // 参数 param := gorequest.NewParams() param.Set("orderid", orderId) @@ -44,8 +43,11 @@ func (c *Client) QueryJkOrders(ctx context.Context, orderId string) *QueryJkOrde c.config.signStr = fmt.Sprintf("userid%vpwd%vorderid%v", c.GetUserId(), c.GetPwd(), orderId) // 请求 request, err := c.request(ctx, apiUrl+"/query_jkorders.do", params, http.MethodGet) + if err != nil { + return newQueryJkOrdersResult(QueryJkOrdersResponse{}, request.ResponseBody, request), err + } // 定义 var response QueryJkOrdersResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newQueryJkOrdersResult(response, request.ResponseBody, request, err) + return newQueryJkOrdersResult(response, request.ResponseBody, request), err } diff --git a/service/ejiaofei/query_txproduct.go b/service/ejiaofei/query_txproduct.go index e048661c..e2bd3b9d 100644 --- a/service/ejiaofei/query_txproduct.go +++ b/service/ejiaofei/query_txproduct.go @@ -17,21 +17,23 @@ type QueryTxProductResult struct { Result QueryTxProductResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newQueryTxProductResult(result QueryTxProductResponse, body []byte, http gorequest.Response, err error) *QueryTxProductResult { - return &QueryTxProductResult{Result: result, Body: body, Http: http, Err: err} +func newQueryTxProductResult(result QueryTxProductResponse, body []byte, http gorequest.Response) *QueryTxProductResult { + return &QueryTxProductResult{Result: result, Body: body, Http: http} } // QueryTxProduct 可充值腾讯产品查询 -func (c *Client) QueryTxProduct(ctx context.Context) *QueryTxProductResult { +func (c *Client) QueryTxProduct(ctx context.Context) (*QueryTxProductResult, error) { // 签名 c.config.signStr = fmt.Sprintf("userid%vpwd%v", c.GetUserId(), c.GetPwd()) // 请求 request, err := c.request(ctx, apiUrl+"/queryTXproduct.do", map[string]interface{}{}, http.MethodGet) + if err != nil { + return newQueryTxProductResult(QueryTxProductResponse{}, request.ResponseBody, request), err + } // 定义 var response QueryTxProductResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newQueryTxProductResult(response, request.ResponseBody, request, err) + return newQueryTxProductResult(response, request.ResponseBody, request), err } diff --git a/service/ejiaofei/txchongzhi.go b/service/ejiaofei/txchongzhi.go index a417e28d..2b45404a 100644 --- a/service/ejiaofei/txchongzhi.go +++ b/service/ejiaofei/txchongzhi.go @@ -35,23 +35,25 @@ type TxChOngZhiResult struct { Result TxChOngZhiResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newTxChOngZhiResult(result TxChOngZhiResponse, body []byte, http gorequest.Response, err error) *TxChOngZhiResult { - return &TxChOngZhiResult{Result: result, Body: body, Http: http, Err: err} +func newTxChOngZhiResult(result TxChOngZhiResponse, body []byte, http gorequest.Response) *TxChOngZhiResult { + return &TxChOngZhiResult{Result: result, Body: body, Http: http} } // TxChOngZhi 流量充值接口 -func (c *Client) TxChOngZhi(ctx context.Context, notMustParams ...gorequest.Params) *TxChOngZhiResult { +func (c *Client) TxChOngZhi(ctx context.Context, notMustParams ...gorequest.Params) (*TxChOngZhiResult, error) { // 参数 params := gorequest.NewParamsWith(notMustParams...) // 签名 c.config.signStr = fmt.Sprintf("userid%vpwd%vorderid%vaccount%vproductid%vamount%vip%vtimes%v", c.GetUserId(), c.GetPwd(), params["orderid"], params["account"], params["productid"], params["amount"], params["ip"], params["times"]) // 请求 request, err := c.request(ctx, apiUrl+"/txchongzhi.do", params, http.MethodGet) + if err != nil { + return newTxChOngZhiResult(TxChOngZhiResponse{}, request.ResponseBody, request), err + } // 定义 var response TxChOngZhiResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newTxChOngZhiResult(response, request.ResponseBody, request, err) + return newTxChOngZhiResult(response, request.ResponseBody, request), err }