微信Native支付V3总结

yang
2021-06-01 / 0 评论 / 29 阅读 / 正在检测是否收录...

微信小程序支付 需要先下单

https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml

数据根据文档拼凑下就好了,主要是签名

注意这只是下单的签名

    /**
     * 获得下单支付签名 sign
     */
    public function getSign($config,$request,$url){
        $url_parts = parse_url($url);
        $canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ? "?${url_parts['query']}" : ""));
        $timestamp = time();
        $nonce = makeOrderNo();
        $merchant_id = $config['mchid'];
        $serial_no = $config['serial_no'];

        $message = 'POST'."\n".
            $canonical_url."\n".
            $timestamp."\n".
            $nonce."\n".
            json_encode($request )."\n";
        $mch_private_key = ($config['mch_key']);

        openssl_sign($message, $raw_sign, $mch_private_key, 'sha256WithRSAEncryption');
        $sign = base64_encode($raw_sign);

        $schema = 'WECHATPAY2-SHA256-RSA2048';
        $token = sprintf('mchid="%s",nonce_str="%s",timestamp="%d",serial_no="%s",signature="%s"',
            $merchant_id, $nonce, $timestamp, $serial_no, $sign);
        return [
            'header'=>'Authorization: '.$schema.'  '.$token,
            'sign'=>$sign,
            'timeStamp'=> $timestamp,
            'nonceStr' => $nonce,
            ];
    }

讲返回的数据生成二维码,然后下单去支付
对应链接格式:weixin://pay.weixin.qq.com/bizpayurl/up?pr=NwY5Mz9&groupid=00。请商户调用第三方库将code_url生成二维码图片。该模式链接较短,生成的二维码打印到结账小票上的识别率较高。

1

评论 (0)

取消