当前位置:首页 > 微信

微信APP统一支付二签方法

canca4年前 (2022-07-07)微信522

微信APP支付二签方法

/**
 * 2 二次签名返回给APP
 */
$signParam = array(
    'appid' => $result['appid'],
    'partnerid' => $result['mch_id'],
    'prepayid' => $result['prepay_id'],
    'package' => 'Sign=WXPay',
    'noncestr' => $wxpay->createNoncestr(),
    'timestamp' => time(),  //系统时间戳,精确到秒
);
$signParam['sign'] = $wxpay->getSign($signParam, $API_KEY);
//转JSON并返回
echo json_encode($signParam);
/**
     * 作用:产生随机字符串,不长于32位
     */
    public function createNoncestr($length = 32)
    {
        $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
        $str = "";
        for ($i = 0; $i < $length; $i++) {
            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
    }
 /**
     * 作用:生成签名(MD5形式)
     */
    public function getSign($Obj, $api_key)
    {
        foreach ($Obj as $k => $v) {
            $Parameters[$k] = $v;
        }
        //签名步骤一:按字典序排序参数
        ksort($Parameters);
        $String = $this->formatBizQueryParaMap($Parameters, false);
        //签名步骤二:在string后加入KEY
        $String = $String . "&key=" . $api_key;
        //签名步骤三:MD5加密
        $String = md5($String);
        //签名步骤四:所有字符转为大写
        $result_ = strtoupper($String);
        return $result_;
    }


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/811.html

分享给朋友:

“微信APP统一支付二签方法” 的相关文章

AES加密时抛出 Illegal key size or default parameters

使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters Illegal key size or default parameters是指密钥长度是受限制的,ja…

微信公众账号文字消息加链接,用户点击链接相当于自动留言

<a href="weixin://bizmsgmenu?msgmenucontent=今天打卡有什么&msgmenuid=1">打卡</a>…

微信支付默认关注公众号

微信支付有四种支付方式:刷卡支付,公众号支付,扫码支付,APP支付;…

微信分享JSSDK-invalid signature签名错误的解决方案

核对官方步骤,确认签名算法。确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。