-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstatus.go
177 lines (168 loc) · 9.81 KB
/
status.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
package yunzhanghu
import "fmt"
const (
RESP_STR_FAILD = "fail"
RESP_STR_SUCCESS = "success"
)
type (
StatusCode string
OrderStatus int
OrderStatusDetail int
)
var (
responseCodes = map[StatusCode]string{
"0000": "成功",
"1000": "缺少请求参数",
"1001": "签名已过期",
"1002": "请求参数格式不正确",
"1003": "签名错误",
"1004": "加密错误",
"1005": "商户未设置3deskey或没有设置appkey",
"1007": "身份证号或收款户名不可为空",
"1016": "未设置IP白名单",
"1017": "请求IP不在白名单内",
"2001": "上传数据有误",
"2002": "已上传过该笔流水",
"2003": "实名认证失败",
"2006": "银行卡号错误",
"2018": "订单不存在",
"2016": "错误的打款金额",
"2024": "订单金额小于0",
"2038": "该商户不属于该综合服务主体",
"3003": "免验证用户已存在",
"3009": "国家不存在",
"3013": "该名单为存量免验证名单,无需审核,可直接使用",
"2094": "未开通此渠道打款,请联系客户成功开通!",
"4030": "商户微信配置尚未开通",
"40302": "微信红包不可用,详询云账户管理员",
"40303": "微信付款到零钱不可用,详询云账户管理员",
"40304": "微信通道不可用,详询云账户管理员",
"4088": "订单备注不合法,备注过长或者包含特殊字符",
"4097": "微信打款金额必须大于最小约定金额",
"4650": "该商户暂不支持打款,请联系商务支持",
"5000": "不存在的账单",
"5224": "该签约关系目前已暂停打款服务,如有疑问,请联系工作人员",
"5277": "该签约关系不存在或已失效(请检查broker_id或dealer_id是否填写正确)",
"5278": "二要素认证未通过",
"5279": "证件类型不存在",
"5280": "token已失效",
"5281": "商户已停止服务,请重新开通",
"5282": "重复发起预申请签约错误",
"5283": "Token错误",
"5285": "非测试商户",
"5286": "用户未在白名单中",
"5287": "用户已解约",
"6201": "个税扣缴明细表不存在",
"6202": "个税扣缴明细表下载公钥错误",
"8300": "获取日流水链接失败",
"9021": "系统繁忙请稍后重试",
"9024": "时间间隔超过规定天数",
"5328": "字符超限,发票备注不能超过200字节",
"5330": "存在非法字符,发票备注不能输入非法字符",
"5341": "请校验发票类型请求参数是否正确",
"5342": "请校验开票金额请求参数是否正确",
"5343": "发票申请编号请求参数不允许为空",
"5344": "开票综合服务主体ID请求参数不允许为空",
"5345": "开票商户平台ID请求参数不允许为空",
"83001": "手机号错误",
"83002": "身份证号错误",
"83003": "姓名身份证号不匹配",
"83004": "内部错误",
"83005": "参数xxx错误",
"83006": "请勿重复操作",
"83007": "图片大小超过最大限制",
"83008": "证件已失效,请更新证件",
"83009": "工商实名信息已录入",
"83010": "工商实名信息未录入",
"83011": "数据量少于采集类型规定数据量",
"83012": "工商实名信息缺失",
"83013": "工商注册失败",
"83014": "工商资格审核失败",
"83015": "工商实名校验未通过,可重新录入;再次录入时请先核查信息是否正确,如正确需提示用户做",
"83016": "工商实名中",
"83017": "用户非dealer方式完成工商实名信息录入,预启动时不可使用dealer方式",
"83018": "非灰度商户,暂不支持申请个体工商户",
"83019": "商户灰度已关闭,暂不支持申请个体工商户",
"83020": "信息采集类型错误",
"83021": "录入失败,当前用户的实名信息和已存在的实名信息重复",
}
orderStatus = map[OrderStatus]string{
-1: "删除", //被标记为删除的订单,只有通过
0: "已受理", //支付订单接收成功,尚未处理(中间状态,不会回调)
1: "已打款", //订单提交到支付网关成功(中间状态,会回调)
2: "打款失败", //主要表示订单数据校验不通过(最终状态,会回调)
4: "待打款(暂停处理)", //暂停处理,满足条件后会继续支付,例如账户余额不足,充值后可以继续打款(中间状态,会回调)
5: "打款中(状态未知)", //调用支付网关超时等状态异常情况导致,处于等待交易查证的中间状态(中间状态,不会回调)
8: "待打款", //订单结算限额检查和风控判断完毕,等待执行打款的状态(中间状态,不会回调)
9: "打款失败(已退款,退汇或者冲正)", //支付被退回(最终状态,会回调)
15: "取消支付", //表示待打款(暂停处理)订单数据被商户主动取消(最终状态,会回调)
}
orderStatusDetail = map[OrderStatusDetail]string{
0: "成功", //成功
20: "账户余额不足", //账户余额不足
22: "通道维护暂停打款", //通道维护暂停打款
25: "要素认证情况未知", //要素认证情况未知
28: "单笔打款超出限额", //单笔打款超出限额
29: "用户未签约", //需要用户到云账户微信小程序进行签约
213: "系统打款和综合服务主体打款都失败", //系统打款和综合服务主体打款都失败
251: "身份证姓名不匹配", //身份证姓名不匹配
252: "身份证号错误", //身份证号错误
254: "银行卡号错误", //银行卡号错误
255: "姓名和银行卡号不匹配", //姓名和银行卡号不匹配
2552: "收款账号、户名不匹配", //姓名和银行卡号不匹配
257: "银行卡受限", //银行卡受限
2571: "II、III类账户不允许此交易", //II、III类账户不允许此交易
2572: "收款账户状态非法或睡眠", //收款账户状态非法或睡眠
2573: "收款账户不合法或已注销或超过有效期", //收款账户不合法或已注销或超过有效期
2574: "副卡不允许此交易", //副卡不允许此交易
2575: "业务累计金额/笔数超过规定上限", //业务累计金额/笔数超过规定上限
2582: "匹配黑名单", //匹配黑名单
6053: "收款行收款失败,请联系发卡行", //收款行收款失败,请联系发卡行
261: "支付宝账号错误", //支付宝账号错误
262: "支付宝账号与姓名不匹配", //支付宝账号与姓名不匹配
265: "身份证号或收款户名不可以为空", //身份证号或收款户名不可以为空
266: "支付宝账号受限", //用户可能未完成支付宝实名认证
5077: "收款方支付宝账户不存在", //用户支付宝账户填写错误或有隐私设置
267: "该手机号对应多个支付宝账户", //该手机号对应多个支付宝账户
271: "微信账号错误", //微信账号错误
273: "此请求可能存在风险,已被微信拦截", //换一个活跃的微信号
277: "OpenID 和 AppID 不匹配", //OpenID 和 AppID 不匹配
302: "报税风险:单人月金额超限", //税务风控挂单,该笔订单将造成签约关系下该用户打款额度超过累计额度配置
304: "报税风险:单人年金额超限", //税务风控挂单,该笔订单将造成签约关系下该用户打款额度超过年累计额度配置
305: "报税风险:单人全平台月金额超限", //税务风控挂单,该笔订单将造成单人全平台月累计超限
2051: "微信转账打款失败", //微信转账打款失败
2052: "没有该接口权限", //综合服务平台自动重试:没有该接口权限
2053: "发送转账金额不在限制范围内", //转账失败:发送转账金额不在限制范围内
2054: "微信账户余额不足", //综合服务平台自动重试:微信账户余额不足
2055: "OpenID 和 AppID 不匹配", //OpenID 和 AppID 不匹配
2056: "超过频率限制,请稍后再试", //综合服务平台自动重试:超过频率限制,请稍后再试
2057: "姓名校验出错", //转账失败:姓名校验出错
2058: "收款账户未实名", //转账失败:收款账户未实名
2059: "微信转账订单不存在", //综合服务平台手动重试:微信转账订单不存在
2060: "已经达到今日付款总额上限", //已达到付款给此用户额度上限转账失败:已经达到今日付款总额上限/已达到付款给此用户额度上限
2061: "该用户今日付款次数超过限制", //转账失败:该用户今日付款次数超过限制
2068: "OpenID 错误", //OpenID 错误
2069: "此请求可能存在风险,已被微信拦截", //用户未实名/长期不使用/使用外挂/触发微信风控机制等
2072: "微信账号与姓名不匹配", //微信账号与姓名不匹配
2073: "收款方微信账户不存在", //收款方微信账户不存在
2074: "收款账号状态异常", // 请在微信支付公众号帮助中心解除支付限制后重试转账失败:收款账号状态异常,请在微信支付公众号帮助中心解除支付限制后重试
}
)
func (s StatusCode) Message() string {
if msg, ok := responseCodes[s]; ok {
return msg
}
return fmt.Sprintf("未知错误 %v", s)
}
func (s OrderStatus) Message() string {
if msg, ok := orderStatus[s]; ok {
return msg
}
return fmt.Sprintf("未知状态 %v", s)
}
func (d OrderStatusDetail) Message() string {
if msg, ok := orderStatusDetail[d]; ok {
return msg
}
return fmt.Sprintf("未知状态 %v", d)
}