微信小程序支付 需要先下单
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生成二维码图片。该模式链接较短,生成的二维码打印到结账小票上的识别率较高。
评论 (0)