PHP 万邑通签名认证

生成签名时需要注意一下几点:

  1. 签名的参数必须按照字符顺序从小到大排序(字典排序);
  2. 如果参数的值为空不参与签名,如JAVA中参数值为null的,不会参与签名("" 与 '' 认 为非空,需要参与签名);
  3. 如果是其他语言参数值为null的值又是必填参数,需要把把该值处理成""空字符串。
  4. 如果参数的值里有utf-8的空格需要单独把utf-8的空格转成ASCII的空格。
  5. 参数名区分大小写;
  6. 在向WINIT发送HTTP请求时必须使用正确的编码格式(默认UTF-8);

认证失败排查工具:

路径:http://developer.winit.com.cn/tool/auth.html

生成签名步骤:

  1. 登录开放平台网站 沙箱环境:http://developer.demo.winit.com.cn/platform/index/login.html   用户名:rebecca ,密码:888;
  2. 登录成功后进入http://developer.demo.winit.com.cn/platform.php/apply/index.html?ref=addtabs 我的应用。
  3. 创建应用的步骤 http://developer.winit.com.cn/document/detail/id/127.html
  4. 应用创建成功后会拿到这(client_id,client_secret,token)三个参数。
  5. 签名认证规则 http://developer.winit.com.cn/document/detail/id/6.html

php生成的签名案例:

    public $account       = 'rebecca';//万邑通账户
    public $token         = '89435277FA3BA112DE795553598E-';
    public $client_id     = 'ZTFIMTM0MZQTZTNHOS12ZWVMLWI8OTATNJHHMJU0DJVHNWRM';
    public $client_secret = 'NGMXODAXN2UTYMM0NS20OTKWLTLLOTATADDIN2M5ZDU2NZC0NDI4NJK2MJQ4NJU2NTK0NQ==';
    public $code          = 'create-order';//应用code(platform)
    public $create_action = 'isp.order.createOrder';//接口名称
    public $testUrl       = 'http://openapi.sandbox.winit.com.cn/openapi/service';//沙箱环境
    public $version       = '1.0';//版本
    public $timeStamp     = '2021-05-05 12:25:26';//调用接口时实时更新这个值
    public $format       = 'json';//数据格式
    public $language      = 'zh_CN';//语言
    public $sign_method   = 'md5';//加密方式


    /*
     * 公共签名拼接
     */
    private function _get_common_sign_param($action,$data){
        $str  = '';
        $str .= 'action'.$action;
        $str .= 'app_key'.$this->account;
        $str .= 'data'.json_encode($data, JSON_UNESCAPED_UNICODE);
        $str .= 'format'.$this->format;
        $str .= 'platform'.$this->code;
        $str .= 'sign_method'.$this->sign_method;
        $str .= 'timestamp'.$this->timeStamp;
        $str .= 'version'.$this->version;
        return $str;
    }

 Sign签名:

    /*
     * 生成sign
     */
    private function _get_sign($action,$data){
        $common_param_str = $this->token.$this->_get_common_sign_param($action,$data).$this->token;
        $sign = strtoupper(md5($common_param_str));
        return $sign;
    }
Client Sign签名:
    /*
     * 生成client_sign
     */
    private function _get_client_sign($action,$data){
        $common_param_str = $this->client_secret.$this->_get_common_sign_param($action,$data).$this->client_secret;
        $client_sign = strtoupper(md5($common_param_str));
        return $client_sign;
    }

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值