微信支付 的sign 应该怎样生成呢呢?官方直说要md5 没说要有哪些内容呀?

如题

微信支付要提交的xml中 的sign 应该怎样生成呢呢?
官方直说要md5 没说要有哪些内容呀?
是应该怎样的逻辑呢?

阅读 3.8k
3 个回答

就是把之前的那些参数字符串加密~

官方文档地址:https://pay.weixin.qq.com/wik...

我这里可以简单的给你提供一些代码片段,但是只给你截图,不会直接贴代码,因为官方文档很详细了,你要自己动手。

图片描述

图片描述

   /**
     * 生成签名
     * @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
     */
    //$arr是xml里面的数组内容,$key是微信支付api那里,自己设置的密钥
    public function MakeSign($arr,$key) {
        //签名步骤一:按字典序排序参数
        ksort($arr);
        $string = $this->ToUrlParams($arr);
        //签名步骤二:在string后加入KEY
        $string = $string . "&key=" . $key;
        //签名步骤三:MD5加密
        $string = md5($string);
        //签名步骤四:所有字符转为大写
        $result = strtoupper($string);
        return $result;
    }
    
        /**
     * 格式化参数格式化成url参数
     */
    public function ToUrlParams($arr) {
        $buff = "";
        foreach ($arr as $k => $v) {
            if ($k != "sign" && $v != "" && !is_array($v)) {
                $buff .= $k . "=" . $v . "&";
            }
        }

        $buff = trim($buff, "&");
        return $buff;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏