有人用过阿里大于的发短信 api 么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
horsley
V2EX    问与答

有人用过阿里大于的发短信 api 么?

  •  
  •   horsley 2016-08-13 18:51:59 +08:00 4394 次点击
    这是一个创建于 3347 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按照文档呼哧呼哧撸了 go 代码,一跑, code 25 签名错,难道是我自己撸的算法不对?

    看见官方有部分语言的 sdk , sdk 包含生成签名算法,下载个 php 的来,测试发送代码写上,一跑,签名错,对了一下生成签名的原文和摘要和我自己写的代码生成的是对的上的。

    再下载一份 python 版本的,结果一样……你们到底要怎样生成签名,你们 sdk 真的 work 吗?

    11 条回复    2017-05-24 17:05:54 +08:00
    alex321
        1
    alex321  
       2016-08-13 19:11:36 +08:00
    一直在用啊。
    已经几十万的量了,还是能让我满意的稳定。。
    ranran
        2
    ranran  
       2016-08-13 20:11:57 +08:00
    签名错?到底是你短信的签名还是传输时的签名?这类问题尽量提供反馈给你的报错原文比较好。

    我的 PHP SDK 是完全可用的 用很久了
    horsley
        3
    horsley  
    OP
       2016-08-13 20:14:53 +08:00
    @ranran 这是 php sdk 的报错
    object(stdClass)#5 (3) {
    ["code"]=>
    int(25)
    ["msg"]=>
    string(17) "Invalid signature"
    ["request_id"]=>
    string(12) "r4lzrco492px"
    }
    shiny
        4
    shiny  
       2016-08-13 20:18:59 +08:00
    function sign($params)
    {
    ksort($params);
    $str = '';
    foreach($params as $key=>$value) {
    $str = $str.$key.$value;
    }
    return strtoupper(hash_hmac('md5', $str, $this->secret));
    }
    自己写的 PHP 版签名,可以对比下签名有没有写对。
    akafeng
        5
    akafeng  
       2016-08-13 20:45:31 +08:00
    /**
    * sms_send
    * @TODO 发送短信
    * @return bool 发送状态
    */
    function sms_send($mobile, $data, $template_code)
    {
    // 基本参数
    $api_url = 'https://eco.taobao.com/router/rest';
    $app_key = '';
    $app_secret = '';
    $sign_name = ''; // 短信签名

    // 公共参数
    $params["method"] = 'alibaba.aliqin.fc.sms.num.send';
    $params["app_key"] = $app_key;
    $params["timestamp"] = date("Y-m-d H:i:s");
    $params["format"] = 'json';
    $params["v"] = '2.0';
    $params["sign_method"] = 'md5';

    // 请求参数
    $params["sms_type"] = 'normal';
    $params["sms_free_sign_name"] = $sign_name;
    $params["sms_param"] = json_encode($data);
    $params["rec_num"] = $mobile;
    $params["sms_template_code"] = $template_code;

    // 签名过程
    ksort($params);
    $signed = $app_secret;

    foreach ($params as $key => $value)
    {
    if(is_string($value) && "@" != substr($value, 0, 1))
    {
    $signed .= "$key$value";
    }
    }
    unset($key, $value);

    $signed .= $app_secret;
    $params["sign"] = strtoupper(md5($signed));br />
    // 发送短信
    $result = get_api($api_url, $params);
    return $result;
    }
    akafeng
        6
    akafeng  
       2016-08-13 20:46:09 +08:00
    把正在使用的模块稍微改了改发了出来...没测试, 应该能用, 不能用稍微修一下就行
    ranran
        7
    ranran  
       2016-08-13 20:47:43 +08:00
    @shiny

    我用的官方 api php 不大熟悉 反正用着没问题
    t/297900#reply5
    2123123
        8
    2123123  
       2016-08-13 21:35:36 +08:00
    直接用 PHP SDK 没问题,很好奇你哪里弄错了
    horsley
        9
    horsley  
    OP
       2016-08-14 00:39:13 +08:00
    @ranran @shiny @2123123
    我也觉得很奇怪,我下载 sdk 在测试 test.php 里面按照示例写的,如下方代码(关键部位有打码) 直接运行就是上面我说的签名错误错误码返回,按理说签名是 sdk 内部代码计算的不会错

    <?php
    include "TopSdk.php";


    $c = new TopClient;
    $c->appkey = "121xxxxx";
    $c->secretKey = "b5684f430749xxxxxxxxxxxxxxxxxxxx";
    $req = new AlibabaAliqinFcSmsNumSendRequest;
    $req->setSmsType("normal");
    $req->setSmsFreeSignName("XXXX");
    $req->setSmsParam("{\"code\":\"123455\",\"product\":\"XXXX\"}");
    $req->setRecNum("186888888888");
    $req->setSmsTemplateCode("SMS_13017117");
    $resp = $c->execute($req);

    var_dump($resp);
    ranran
        10
    ranran  
       2016-08-14 00:43:41 +08:00
    @horsley 找客服吧。
    jlj224
        11
    jlj224  
       2017-05-24 17:05:54 +08:00
    我用的是 SUBMAIL 的 SDK ,反正直接下载就行 https://www.mysubmail.com/chs/documents/developer/BSx2b3
    你可以参考一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5444 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 07:48 PVG 15:48 LAX 00:48 JFK 03:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86