demo_gbk.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. <?php
  2. set_time_limit(0);
  3. header("Content-Type: text/html; charset=UTF-8");
  4. /**
  5. * 定义程序绝对路径
  6. */
  7. define('SCRIPT_ROOT', dirname(__FILE__).'/');
  8. require_once SCRIPT_ROOT.'include/Client.php';
  9. /**
  10. * 网关地址
  11. */
  12. $gwUrl = 'http://sdkhttp.eucp.b2m.cn/sdk/SDKService';
  13. /**
  14. * 序列号,请通过亿美销售人员获取
  15. */
  16. $serialNumber = '0SDK-EBB-0130-NESPM';
  17. /**
  18. * 密码,请通过亿美销售人员获取
  19. */
  20. $password = '981308';
  21. /**
  22. * 登录后所持有的SESSION KEY,即可通过login方法时创建
  23. */
  24. $sessionKey = '123456';
  25. /**
  26. * 连接超时时间,单位为秒
  27. */
  28. $connectTimeOut = 2;
  29. /**
  30. * 远程信息读取超时时间,单位为秒
  31. */
  32. $readTimeOut = 10;
  33. /**
  34. $proxyhost 可选,代理服务器地址,默认为 false ,则不使用代理服务器
  35. $proxyport 可选,代理服务器端口,默认为 false
  36. $proxyusername 可选,代理服务器用户名,默认为 false
  37. $proxypassword 可选,代理服务器密码,默认为 false
  38. */
  39. $proxyhost = false;
  40. $proxyport = false;
  41. $proxyusername = false;
  42. $proxypassword = false;
  43. $client = new Client($gwUrl,$serialNumber,$password,$sessionKey,$proxyhost,$proxyport,$proxyusername,$proxypassword,$connectTimeOut,$readTimeOut);
  44. /**
  45. * 发送向服务端的编码,如果本页面的编码为GBK,请使用GBK
  46. */
  47. $client->setOutgoingEncoding("UTF-8");
  48. login(); //激活序列号
  49. // updatePassword(); //修改密码
  50. // logout(); //注销序列号
  51. // registDetailInfo();//注册企业信息
  52. // getEachFee(); //得到单价
  53. // getMO(); //接收短信
  54. // getVersion(); //得到版本号
  55. sendSMS(); //发送短信
  56. // getBalance(); //得到余额
  57. // chargeUp(); //充值
  58. //sendVoice(); //发送短信验证码
  59. //----------------------------------------------------------------------
  60. // 注:
  61. // 1. 下面是各接口的使用用例,Client.php 还有每一个接口更详细的参数说明
  62. // 2. 凡是返回 $statusCode 的, 都是相关操作的状态码
  63. // 3. 由于php是弱类型语言,当服务端没返回时,也会等同认为 $statusCode=='0', 所以在判断时应该使用 if ($statusCode!=null && $statusCode==0)
  64. //----------------------------------------------------------------------
  65. /**
  66. * 接口调用错误查看 用例
  67. */
  68. function chkError()
  69. {
  70. global $client;
  71. $err = $client->getError();
  72. if ($err)
  73. {
  74. /**
  75. * 调用出错,可能是网络原因,接口版本原因 等非业务上错误的问题导致的错误
  76. * 可在每个方法调用后查看,用于开发人员调试
  77. */
  78. echo $err;
  79. }
  80. }
  81. /**
  82. * 登录 用例
  83. */
  84. function login()
  85. {
  86. global $client;
  87. /**
  88. * 下面的操作是产生随机6位数 session key
  89. * 注意: 如果要更换新的session key,则必须要求先成功执行 logout(注销操作)后才能更换
  90. * 我们建议 sesson key不用常变
  91. */
  92. //$sessionKey = $client->generateKey();
  93. //$statusCode = $client->login($sessionKey);
  94. $statusCode = $client->login();
  95. echo "处理状态码:".$statusCode."<br/>";
  96. if ($statusCode!=null && $statusCode=="0")
  97. {
  98. //登录成功,并且做保存 $sessionKey 的操作,用于以后相关操作的使用
  99. echo "登录成功, session key:".$client->getSessionKey()."<br/>";
  100. }else{
  101. //登录失败处理
  102. echo "登录失败,返回:".$statusCode;
  103. }
  104. }
  105. /**
  106. * 注销登录 用例
  107. */
  108. function logout()
  109. {
  110. global $client;
  111. $statusCode = $client->logout();
  112. echo "处理状态码:".$statusCode;
  113. }
  114. /**
  115. * 获取版本号 用例
  116. */
  117. function getVersion()
  118. {
  119. global $client;
  120. echo "版本:". $client->getVersion();
  121. }
  122. /**
  123. * 取消短信转发 用例
  124. */
  125. function cancelMOForward()
  126. {
  127. global $client;
  128. $statusCode = $client->cancelMOForward();
  129. echo "处理状态码:".$statusCode;
  130. }
  131. /**
  132. * 短信充值 用例
  133. */
  134. function chargeUp()
  135. {
  136. global $client;
  137. /**
  138. * $cardId [充值卡卡号]
  139. * $cardPass [密码]
  140. *
  141. * 请通过亿美销售人员获取 [充值卡卡号]长度为20内 [密码]长度为6
  142. *
  143. */
  144. $cardId = 'EMY01200810231542008';
  145. $cardPass = '123456';
  146. $statusCode = $client->chargeUp($cardId,$cardPass);
  147. echo "处理状态码:".$statusCode;
  148. }
  149. /**
  150. * 查询单条费用 用例
  151. */
  152. function getEachFee()
  153. {
  154. global $client;
  155. $fee = $client->getEachFee();
  156. echo "费用:".$fee;
  157. }
  158. /**
  159. * 企业注册 用例
  160. */
  161. function registDetailInfo()
  162. {
  163. global $client;
  164. $eName = "xx公司";
  165. $linkMan = "陈xx";
  166. $phoneNum = "010-1111111";
  167. $mobile = "159xxxxxxxx";
  168. $email = "xx@yy.com";
  169. $fax = "010-1111111";
  170. $address = "xx路";
  171. $postcode = "111111";
  172. /**
  173. * 企业注册 [邮政编码]长度为6 其它参数长度为20以内
  174. *
  175. * @param string $eName 企业名称
  176. * @param string $linkMan 联系人姓名
  177. * @param string $phoneNum 联系电话
  178. * @param string $mobile 联系手机号码
  179. * @param string $email 联系电子邮件
  180. * @param string $fax 传真号码
  181. * @param string $address 联系地址
  182. * @param string $postcode 邮政编码
  183. *
  184. * @return int 操作结果状态码
  185. *
  186. */
  187. $statusCode = $client->registDetailInfo($eName,$linkMan,$phoneNum,$mobile,$email,$fax,$address,$postcode);
  188. echo "处理状态码:".$statusCode;
  189. }
  190. /**
  191. * 更新密码 用例
  192. */
  193. function updatePassword()
  194. {
  195. global $client;
  196. /**
  197. * [密码]长度为6
  198. *
  199. * 如下面的例子是将密码修改成: 654321
  200. */
  201. $statusCode = $client->updatePassword('654321');
  202. echo "处理状态码:".$statusCode;
  203. }
  204. /**
  205. * 短信转发 用例
  206. */
  207. function setMOForward()
  208. {
  209. global $client;
  210. /**
  211. * 向 159xxxxxxxx 进行转发短信
  212. */
  213. $statusCode = $client->setMOForward('159xxxxxxxx');
  214. echo "处理状态码:".$statusCode;
  215. }
  216. /**
  217. * 得到上行短信 用例
  218. */
  219. function getMO()
  220. {
  221. global $client;
  222. $moResult = $client->getMO();
  223. echo "返回数量:".count($moResult);
  224. foreach($moResult as $mo)
  225. {
  226. //$mo 是位于 Client.php 里的 Mo 对象
  227. // 实例代码为直接输出
  228. echo "发送者附加码:".$mo->getAddSerial();
  229. echo "接收者附加码:".$mo->getAddSerialRev();
  230. echo "通道号:".$mo->getChannelnumber();
  231. echo "手机号:".$mo->getMobileNumber();
  232. echo "发送时间:".$mo->getSentTime();
  233. /**
  234. * 由于服务端返回的编码是UTF-8,所以需要进行编码转换
  235. */
  236. echo "短信内容:".iconv("UTF-8","GBK",$mo->getSmsContent());
  237. // 上行短信务必要保存,加入业务逻辑代码,如:保存数据库,写文件等等
  238. }
  239. }
  240. /**
  241. * 短信发送 用例
  242. */
  243. function sendSMS()
  244. {
  245. global $client;
  246. /**
  247. * 下面的代码将发送内容为 test 给 159xxxxxxxx 和 159xxxxxxxx
  248. * $client->sendSMS还有更多可用参数,请参考 Client.php
  249. */
  250. $statusCode = $client->sendSMS(array('XXX'),'XXXX');
  251. echo "处理状态码:".$statusCode;
  252. }
  253. /**
  254. * 发送语音验证码 用例
  255. */
  256. function sendVoice()
  257. {
  258. global $client;
  259. /**
  260. * 下面的代码将发送验证码123456给 159xxxxxxxx
  261. * $client->sendSMS还有更多可用参数,请参考 Client.php
  262. */
  263. $statusCode = $client->sendVoice(array('159xxxxxxxx'),"123456");
  264. echo "处理状态码:".$statusCode;
  265. }
  266. /**
  267. * 余额查询 用例
  268. */
  269. function getBalance()
  270. {
  271. global $client;
  272. $balance = $client->getBalance();
  273. echo "余额:".$balance;
  274. }
  275. /**
  276. * 短信转发扩展 用例
  277. */
  278. function setMOForwardEx()
  279. {
  280. global $client;
  281. /**
  282. * 向多个号码进行转发短信
  283. *
  284. * 以数组形式填写手机号码
  285. */
  286. $statusCode = $client->setMOForwardEx(
  287. array('159xxxxxxxx','159xxxxxxxx','159xxxxxxxx')
  288. );
  289. echo "处理状态码:".$statusCode;
  290. }
  291. ?>