|
| 1 | +## 云片短信API文档(2.0) |
| 2 | +.NET Standard 2.0 框架 |
| 3 | + |
| 4 | +* 设计之初就考虑了依赖注入,方便集成各种系统. |
| 5 | +* 由于短信的特殊性,请替换测试的相关代码后再进行单元测试. |
| 6 | +* 详细见测试代码 |
| 7 | + |
| 8 | +### 使用方法 |
| 9 | + |
| 10 | +``` csharp |
| 11 | +var _accountManager = new AccountManager(new DefaultYunPianConfiguration |
| 12 | +{ |
| 13 | + ApiKey = "your api key" |
| 14 | +}); |
| 15 | +var accountInfo = await _accountManager.GetAsync(); |
| 16 | + |
| 17 | + |
| 18 | +var smsManager = new SmsManager(new DefaultYunPianConfiguration |
| 19 | +{ |
| 20 | + ApiKey = "your api key" |
| 21 | +}); |
| 22 | +var smsResult = await smsManager.Send(new BatchSendSms() |
| 23 | +{ |
| 24 | + Mobile = new List<string> |
| 25 | + { |
| 26 | + "13800138000", |
| 27 | + "13800138001" |
| 28 | + }, |
| 29 | + Text = "尊敬的用户,您的帐号于2017-01-01成功充值100元,如有疑问请联系客服。" |
| 30 | +}); |
| 31 | +``` |
| 32 | + |
| 33 | +### 依赖注入(autofac) |
| 34 | + |
| 35 | +``` csharp |
| 36 | +var builder = new ContainerBuilder(); |
| 37 | +builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces(); |
| 38 | + |
| 39 | +builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(IYunPianConfiguration))) |
| 40 | + .AsImplementedInterfaces(); |
| 41 | + |
| 42 | +builder.Register(c => new DefaultYunPianConfiguration |
| 43 | +{ |
| 44 | + ApiKey = "your api key", |
| 45 | +}).As<IYunPianConfiguration>().SingleInstance(); |
| 46 | + |
| 47 | +IocContainer = builder.Build(); |
| 48 | +``` |
| 49 | + |
| 50 | +### 账户API |
| 51 | +``` csharp |
| 52 | +public interface IAccountManager |
| 53 | +{ |
| 54 | + /// <summary> |
| 55 | + /// 查账户信息 |
| 56 | + /// </summary> |
| 57 | + /// <returns></returns> |
| 58 | + Task<Account> GetAsync(); |
| 59 | + |
| 60 | + /// <summary> |
| 61 | + /// 可一次修改emergency_contact、emergency_mobile和alarm_balance中的一个或多个(必须传入一个) |
| 62 | + /// </summary> |
| 63 | + /// <param name="account"></param> |
| 64 | + /// <returns></returns> |
| 65 | + Task<Account> UpdateAsync([NotNull]UpdateAccount account); |
| 66 | +} |
| 67 | + |
| 68 | + |
| 69 | +public class Account : ApiResultBase |
| 70 | +{ |
| 71 | + /// <summary> |
| 72 | + /// 用户名 |
| 73 | + /// </summary> |
| 74 | + public string Nick { get; set; } |
| 75 | + |
| 76 | + /// <summary> |
| 77 | + /// 注册时间 |
| 78 | + /// </summary> |
| 79 | + public DateTime Gmt_Created { get; set; } |
| 80 | + |
| 81 | + /// <summary> |
| 82 | + /// 手机号 |
| 83 | + /// </summary> |
| 84 | + public string Mobile { get; set; } |
| 85 | + |
| 86 | + /// <summary> |
| 87 | + /// 邮箱 |
| 88 | + /// </summary> |
| 89 | + public string Email { get; set; } |
| 90 | + |
| 91 | + /// <summary> |
| 92 | + /// IP白名单,推荐使用 |
| 93 | + /// </summary> |
| 94 | + public string Ip_WhiteList { get; set; } |
| 95 | + |
| 96 | + /// <summary> |
| 97 | + /// api版本号 |
| 98 | + /// </summary> |
| 99 | + public string Api_Version { get; set; } |
| 100 | + |
| 101 | + /// <summary> |
| 102 | + /// 账户剩余条数或者剩余金额(根据账户类型) |
| 103 | + /// </summary> |
| 104 | + public string Balance { get; set; } |
| 105 | + |
| 106 | + /// <summary> |
| 107 | + /// 剩余条数或剩余金额低于该值时提醒 |
| 108 | + /// </summary> |
| 109 | + public long Alarm_Balance { get; set; } |
| 110 | + |
| 111 | + /// <summary> |
| 112 | + /// 紧急联系人 |
| 113 | + /// </summary> |
| 114 | + public string Emergency_Contact { get; set; } |
| 115 | + |
| 116 | + /// <summary> |
| 117 | + /// 紧急联系人电话 |
| 118 | + /// </summary> |
| 119 | + public string Emergency_Mobile { get; set; } |
| 120 | +} |
| 121 | +``` |
| 122 | + |
| 123 | +### 短信API |
| 124 | +``` csharp |
| 125 | +public interface ISmsManager |
| 126 | +{ |
| 127 | + /// <summary> |
| 128 | + /// 单条发送 |
| 129 | + /// 一次发送一条短信,常用于短信验证、找回密码、短信登录、监控报警 |
| 130 | + /// </summary> |
| 131 | + /// <param name="sms"></param> |
| 132 | + /// <returns></returns> |
| 133 | + Task<SmsResult> Send(SingleSendSms sms); |
| 134 | + |
| 135 | + /// <summary> |
| 136 | + /// 批量发送相同内容 |
| 137 | + /// 批量发送订单状态通知,活动信息群发 |
| 138 | + /// </summary> |
| 139 | + /// <param name="sms"></param> |
| 140 | + /// <returns></returns> |
| 141 | + Task<SmsResult> Send(BatchSendSms sms); |
| 142 | + |
| 143 | + /// <summary> |
| 144 | + /// 批量发送不同内容 |
| 145 | + /// 批量发送短信内容带变量的订单状态通知,活动信息群发 |
| 146 | + /// </summary> |
| 147 | + /// <param name="sms"></param> |
| 148 | + /// <returns></returns> |
| 149 | + Task<SmsResult> Send(MultiSendSms sms); |
| 150 | +} |
| 151 | + |
| 152 | +public class SingleSendSms |
| 153 | +{ |
| 154 | + /// <summary> |
| 155 | + /// 接收的手机号 |
| 156 | + /// </summary> |
| 157 | + public string Mobile { get; set; } |
| 158 | + |
| 159 | + /// <summary> |
| 160 | + /// 已审核短信模板 |
| 161 | + /// </summary> |
| 162 | + public string Text { get; set; } |
| 163 | + |
| 164 | + /// <summary> |
| 165 | + /// 其它附加参数 |
| 166 | + /// </summary> |
| 167 | + public SendSmsOption Option { get; set; } |
| 168 | +} |
| 169 | + |
| 170 | +public class BatchSendSms |
| 171 | +{ |
| 172 | + /// <summary> |
| 173 | + /// 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个; |
| 174 | + /// </summary> |
| 175 | + public List<string> Mobile { get; set; } |
| 176 | + |
| 177 | + /// <summary> |
| 178 | + /// 已审核短信模板 |
| 179 | + /// </summary> |
| 180 | + public string Text { get; set; } |
| 181 | + |
| 182 | + /// <summary> |
| 183 | + /// 其它附加参数 |
| 184 | + /// </summary> |
| 185 | + public SendSmsOption Option { get; set; } |
| 186 | +} |
| 187 | + |
| 188 | +public class MultiSendSms |
| 189 | +{ |
| 190 | + /// <summary> |
| 191 | + /// 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个; |
| 192 | + /// </summary> |
| 193 | + public List<string> Mobile { get; set; } |
| 194 | + |
| 195 | + /// <summary> |
| 196 | + /// 已审核短信模板,多个已审核短信模板请使用UTF-8做urlencode; |
| 197 | + /// 使用逗号分隔,一次不要超过1000条且已审核短信模板条数必须与手机号个数相等 |
| 198 | + /// </summary> |
| 199 | + public List<string> Text { get; set; } |
| 200 | + |
| 201 | + /// <summary> |
| 202 | + /// 其它附加参数 |
| 203 | + /// </summary> |
| 204 | + public SendSmsOption Option { get; set; } |
| 205 | +} |
| 206 | + |
| 207 | +public class SmsResult : ApiResultBase |
| 208 | +{ |
| 209 | + /// <summary> |
| 210 | + /// 成功发送总数 |
| 211 | + /// </summary> |
| 212 | + public int Total_Count { get; set; } |
| 213 | + |
| 214 | + /// <summary> |
| 215 | + /// 扣费金额,单位:元,类型:双精度浮点型/double |
| 216 | + /// </summary> |
| 217 | + public double Total_Fee { get; set; } |
| 218 | + |
| 219 | + /// <summary> |
| 220 | + /// 计费单位 |
| 221 | + /// </summary> |
| 222 | + public string Unit { get; set; } |
| 223 | + |
| 224 | + public IReadOnlyList<SendResultItem> Data { get; set; } |
| 225 | +} |
| 226 | + |
| 227 | +public class SendResultItem : ApiResultBase |
| 228 | +{ |
| 229 | + /// <summary> |
| 230 | + /// 发送成功短信的计费条数(计费条数:70个字一条,超出70个字时按每67字一条计费) |
| 231 | + /// </summary> |
| 232 | + public int Count { get; set; } |
| 233 | + |
| 234 | + /// <summary> |
| 235 | + /// 扣费金额,单位:元,类型:双精度浮点型/double |
| 236 | + /// </summary> |
| 237 | + public double Fee { get; set; } |
| 238 | + |
| 239 | + /// <summary> |
| 240 | + /// 计费单位 |
| 241 | + /// </summary> |
| 242 | + public string Unit { get; set; } |
| 243 | + |
| 244 | + /// <summary> |
| 245 | + /// 发送手机号 |
| 246 | + /// </summary> |
| 247 | + public string Mobile { get; set; } |
| 248 | + |
| 249 | + /// <summary> |
| 250 | + /// 短信id,64位整型, 对应Java和C#的Long,不可用int解析 |
| 251 | + /// </summary> |
| 252 | + public long Sid { get; set; } |
| 253 | +} |
| 254 | +``` |
0 commit comments