php微信扫码支付 php公众号支付
本文实例为大家分享了php微信扫码支付,公众号支付的具体代码,供大家参考,具体内容如下
'公众号id',
'mch_id'=>'商户id',
'nonce_str'=>uniqid(),
'sign_type'=>'MD5',
'body'=>'test',
'detail'=>'testdetail',
'out_trade_no'=>date('Ymd').rand(10000,99999),
'total_fee'=>1,
'notify_url'=>'http://www.test.top/testpay/pay.php',
'trade_type'=>'JSAPI',
];
ksort($param);
$sign_str=urldecode(http_build_query($param));
$sign_str.='&key=商户密钥';
//echo$sign_str;exit;
$sign_str=md5($sign_str);
$param['sign']=strtoupper($sign_str);
functionCurlPost($url,$param=[],$is_post=1,$timeout=5)
{
//初始化curl
$curl=curl_init();
//设置请求的路径
curl_setopt($curl,CURLOPT_URL,$url);
if($is_post==1){
//设置POST提交
curl_setopt($curl,CURLOPT_POST,0);
}
//显示输出结果1代表把接口返回的结果当作一个字符串处理
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//设置请求超时时间
curl_setopt($curl,CURLOPT_TIMEOUT,$timeout);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
if($is_post==1){
//提交数据--设置post提交的数据
if(is_array($param)){
//http_build_query
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($param));
}else{
curl_setopt($curl,CURLOPT_POSTFIELDS,$param);
}
}
//执行请求
$data=$data_str=curl_exec($curl);
//处理错误
if($error=curl_error($curl)){
$log_data=array(
'url'=>$url,
'param'=>$param,
'error'=>''.$error.'',
);
var_dump($log_data);
exit;
}
#关闭CURL
curl_close($curl);
//json数据转换为数组
$data=json_decode($data,true);
if(!is_array($data)){
$data=$data_str;
}
#调用玩接口之后写一个日志
$log=[
'url'=>$url,
'param'=>$param,
'response'=>$data_str
];
file_put_contents(__DIR__.'/wechat.log',print_r($log,true),8);
return$data;
}
functionarr2Xml($arr){
$xml='';
foreach($arras$key=>$value){
if(is_numeric($value)){
$xml.="<".$key.">".$value."".$key.">";
}else{
$xml.="<".$key.">".$key.">";
}
}
$xml.='';
return$xml;
}
$xml=arr2Xml($param);
$result=CurlPost($url,arr2Xml($param));
$api_arr=json_decode(json_encode(simplexml_load_string($result,'SimpleXMLElement',LIBXML_NOCDATA)),true);
if($api_arr['return_code']=='SUCCESS'){
include__DIR__.'/phpqrcode.php';
header('content-type:image/png');
echoQrcode::png($api_arr['code_url'],false,'H',6,2);
}
'****',
'mch_id'=>'***',
'nonce_str'=>uniqid(),
'sign_type'=>'MD5',
'body'=>'test',
'detail'=>'detail',
'out_trade_no'=>date('Ymd').rand(10000,99999),
'total_fee'=>1,
'spbill_create_ip'=>$_SERVER['SERVER_ADDR'],
'notify_url'=>'http://****/test.php',
'trade_type'=>'NATIVE',
];
ksort($param);
$sign_str=urldecode(http_build_query($param));
$sign_str.='&key=8934e7d15453e97507ef794cf7b0519d';
$sign_str=md5($sign_str);
$param['sign']=strtoupper($sign_str);
//print_r($param);exit;
functionCurlPost($url,$param=[],$is_post=1,$timeout=5)
{
//初始化curl
$curl=curl_init();
//设置请求的路径
curl_setopt($curl,CURLOPT_URL,$url);
if($is_post==1){
//设置POST提交
curl_setopt($curl,CURLOPT_POST,0);
}
//显示输出结果1代表把接口返回的结果当作一个字符串处理
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//设置请求超时时间
curl_setopt($curl,CURLOPT_TIMEOUT,$timeout);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
if($is_post==1){
//提交数据--设置post提交的数据
if(is_array($param)){
//http_build_query
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($param));
}else{
curl_setopt($curl,CURLOPT_POSTFIELDS,$param);
}
}
//执行请求
$data=$data_str=curl_exec($curl);
//处理错误
if($error=curl_error($curl)){
$log_data=array(
'url'=>$url,
'param'=>$param,
'error'=>''.$error.'',
);
var_dump($log_data);
exit;
}
#关闭CURL
curl_close($curl);
//json数据转换为数组
$data=json_decode($data,true);
if(!is_array($data)){
$data=$data_str;
}
#调用玩接口之后写一个日志
$log=[
'url'=>$url,
'param'=>$param,
'response'=>$data_str
];
file_put_contents(__DIR__.'/wechat.log',print_r($log,true),8);
return$data;
}
functionarrzxml($arr){
$xml='';
foreach($arras$key=>$value){
if(is_numeric($value)){
$xml.="<".$key.">".$value."".$key.">";
}else{
$xml.="<".$key.">".$key.">";
}
}
$xml.='';
//var_dump($xml);exit;
return$xml;
}
$xml=arrzxml($param);
$result=CurlPost($url,arrzxml($param));
//echo'';
var_dump($result);
exit;
$api_arr=json_decode(simplexml_load_string($result,'SimpleXMLElement',LIBXML_NOCDATA),true);
if($result['return_code']=='SUCCESS'){
include__DIR__.'/phpqrcode.php';
header('content-type:image/png');
echoQrcode::png($api_arr['code_url'],false,'H',6,2);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。