1. 程式人生 > >微信h5支付

微信h5支付

ref 單位 tps ech echo info str name ini

<?php



    const APPID = ‘‘;
    //受理商ID,身份標識
    const MCHID = ‘‘;
    //商戶支付密鑰Key。審核通過後,在微信發送的郵件中查看
    const KEY = ‘‘;


    // echo get_client_ip();
    // die;

    $data[‘appid‘]=APPID;                               //微信分配的公眾賬號ID
    $data[‘mch_id‘]=MCHID;                              //
微信支付分配的商戶號 $data[‘time_stamp‘]=time(); //系統當前時間,定義規則詳見時間戳 $data[‘nonce_str‘]=uniqid(); //隨機字符串,不長於32位。推薦隨機數生成算法 $data[‘out_trade_no‘]=time().rand(‘1111‘,‘9999‘); //商戶定義的商品id 或者訂單號 $data[‘body‘]=‘龍測試‘; //商品信息 $data
[‘trade_type‘]=‘MWEB‘; //交易類型 $data[‘total_fee‘]=1; //支付金額 單位分 $data[‘spbill_create_ip‘]=‘117.23.83.120‘; $data[‘notify_url‘]=‘www.guomeng.group/index/way_login/pay‘; //外網地址 $data[‘scene_info‘]=‘{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "騰訊充值"}}‘;
$sign=createSign($data); $data[‘sign‘]=$sign; //簽名 $data=dataToXml($data); //轉xml $request=request($url=‘https://api.mch.weixin.qq.com/pay/unifiedorder‘,$https=true,$method=‘post‘,$data); //將數據發送到微信服務器 $obj=simplexml_load_string($request); $code_url=$obj->mweb_url; $add_url=urlencode(‘http://baidu.com‘); $code_url=$code_url.‘&‘.$add_url; echo ‘<a href="‘.$code_url.‘">跳轉</a>‘; die; //header( "Location: $code_url" ); //生成簽名 function createSign($data){ $string=‘‘; ksort($data); foreach($data as $key=>$value){ $string.="{$key}={$value}&"; } $string.=‘key=‘.KEY; return strToUpper(md5($string)); } //轉xml function dataToXml($data){ $xml=‘<xml>‘; foreach($data as $key=>$value){ $xml.="<{$key}>{$value}</{$key}>"; } $xml.=‘</xml>‘; return $xml; } //curl發送請求 function request($url,$https,$method,$data){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if($https==true){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); } if($method==‘post‘){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); } $result = curl_exec($ch); curl_close($ch); return $result; } function get_client_ip() { if(getenv(‘HTTP_CLIENT_IP‘) && strcasecmp(getenv(‘HTTP_CLIENT_IP‘), ‘unknown‘)) { $ip = getenv(‘HTTP_CLIENT_IP‘); } elseif(getenv(‘HTTP_X_FORWARDED_FOR‘) && strcasecmp(getenv(‘HTTP_X_FORWARDED_FOR‘), ‘unknown‘)) { $ip = getenv(‘HTTP_X_FORWARDED_FOR‘); } elseif(getenv(‘REMOTE_ADDR‘) && strcasecmp(getenv(‘REMOTE_ADDR‘), ‘unknown‘)) { $ip = getenv(‘REMOTE_ADDR‘); } elseif(isset($_SERVER[‘REMOTE_ADDR‘]) && $_SERVER[‘REMOTE_ADDR‘] && strcasecmp($_SERVER[‘REMOTE_ADDR‘], ‘unknown‘)) { $ip = $_SERVER[‘REMOTE_ADDR‘]; } return preg_match ( ‘/[\d\.]{7,15}/‘, $ip, $matches ) ? $matches [0] : ‘‘; }

微信h5支付