摘要:文檔注開(kāi)放平臺(tái)的微信支付和公眾號(hào)的微信支付是不一樣的,公眾平臺(tái)和開(kāi)放平臺(tái)的支付申請(qǐng)下來(lái)之后會(huì)有各自對(duì)應(yīng)的商戶平臺(tái)賬號(hào)注意區(qū)分公眾號(hào)和商戶號(hào)不同隨機(jī)數(shù)自己定義一個(gè)不重復(fù)訂單號(hào)微信通過(guò)微信授權(quán)登錄獲取注意這里傳給微信的單位是分商戶后臺(tái)自定義的超
文檔
注:開(kāi)放平臺(tái)的微信支付和公眾號(hào)的微信支付是不一樣的,公眾平臺(tái)和開(kāi)放平臺(tái)的支付申請(qǐng)下來(lái)之后會(huì)有各自對(duì)應(yīng)的商戶平臺(tái)賬號(hào)
function wechat($appid,$mchid,$appkey,$cert_path,$key_path,$order_id,$openid,$amount,$desc){ $arr = [ "mch_appid"=>$appid,//注意區(qū)分公眾號(hào)和app商戶號(hào)不同 "mchid"=>$mchid, "nonce_str"=>str_random(32),//隨機(jī)數(shù) "partner_trade_no"=>$order_id,//自己定義一個(gè)不重復(fù)訂單號(hào) "openid"=>$openid,//微信openid 通過(guò)微信授權(quán)登錄獲取 "check_name"=>"NO_CHECK", "amount"=>$amount*100,//注意這里傳給微信的單位是分 "desc"=>$desc, "spbill_create_ip"=>Request::getClientIp(), "sign"=>"", ]; ksort($arr); $sign=""; foreach ($arr as $key => $value) { if($value && $key!="sign" && $key!="key"){ $sign.=$key."=".$value."&"; } } $sign.="key=".$appkey;//商戶后臺(tái)自定義的 $arr["sign"] = strtoupper(md5($sign)); $xml = ""; foreach ($arr as $key=>$val) { if (is_numeric($val)) { $xml.="<".$key.">".$val."".$key.">"; } else $xml.="<".$key.">".$key.">"; } $xml.=" "; $ch = curl_init(); //超時(shí)時(shí)間 curl_setopt($ch,CURLOPT_TIMEOUT,60); curl_setopt($ch,CURLOPT_URL,"https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //默認(rèn)格式為PEM curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM"); curl_setopt($ch,CURLOPT_SSLCERT,$cert_path);//注意區(qū)分公眾號(hào)和app商戶號(hào)的證書(shū)不同,需要到pay.weixin.qq.com后臺(tái)下載 curl_setopt($ch,CURLOPT_SSLKEYTYPE,"PEM"); curl_setopt($ch,CURLOPT_SSLKEY,$key_path); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml")); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS,$xml); $data = curl_exec($ch); $data = json_decode(json_encode(simplexml_load_string($data, "SimpleXMLElement", LIBXML_NOCDATA)), true); curl_close($ch); return $data;//$data["return_code"] == "SUCCESS" && $data["result_code"] == "SUCCESS" 支付成功 } }
微信上傳文件
function https_request($url,$type="get",$res="json",$data = ""){ //1.初始化curl $curl = curl_init(); //2.設(shè)置curl的參數(shù) curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,2); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if ($type == "post"){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } //3.采集 $output = curl_exec($curl); //4.關(guān)閉 curl_close($curl); if ($res == "json") { return json_decode($output,true); } } function getWxAccessToken(){ if ( $_SESSION["access_token"] && $_SESSION["expire_time"] > time() ) { //未過(guò)期 return $_SESSION["access_token"]; }else { $appid = "我的id"; $appsecret = "我的appsecret "; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $res =$this->https_request($url,"get","json"); $access_token = $res["access_token"]; //將重新獲取到的access_token存到session里 $_SESSION["access_token"]=$access_token; $_SESSION["expire_time"]=time()+7200; return $access_token; } } //上傳圖片素材(該方法只能獲取到圖片的URL) function addMaterialUrl() { $access_token = $this->getWxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=".$access_token; $filename = "我是圖片"; $data=array("media"=>"@". $filename); $res=$this->https_request( $url ,"post", "json", $data); //dump($res); exit(); return $res["url"]; } php5.6加上curl_setopt ($curl, CURLOPT_SAFE_UPLOAD, false);或者直接"media" => new CURLFile(realpath($real_path)), https://segmentfault.com/a/1190000000725185
附:
https://youqingkui.me/note/e5...
python版微信支付
http://bblove.me/2015/10/25/w...
微信APP支付服務(wù)端php sdk開(kāi)發(fā)教程
https://github.com/fanhefan/w...
微信紅包API接口
http://jeffchen.sinaapp.com/
http://tao.logdown.com/posts/...
微信支付 一步一個(gè)坑的APP支付
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21268.html
摘要:本文是淺析微信支付系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。淺析微信支付前篇大綱微信支付是集成在微信客戶端的支付功能,用戶可以通過(guò)手機(jī)完成快速的支付流程。目前微信支付支持手機(jī)系統(tǒng)有蘋(píng)果安卓和。 本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。 上篇文章講了本系列的大綱,沒(méi)有看過(guò)的朋友們可以看一下。 淺析微信支...
摘要:前者集成在中,后者主要是為微信用戶提供了另一種支付方式需要在微信的內(nèi)置瀏覽器中打開(kāi)頁(yè)面,再調(diào)起微信支付。步驟商戶后臺(tái)收到用戶支付單,調(diào)用微信支付統(tǒng)一下單接口。拿到所有參數(shù)后,就可以在頁(yè)面中發(fā)起微信支付的請(qǐng)求了。 微信支付,支持的支付方式比較多:有掃碼支付,刷卡支付,APP支付和公眾號(hào)支付。其中,APP和網(wǎng)站上最常用的就是APP支付和公眾號(hào)支付。前者集成在APP中,后者主要是為微信用戶提...
摘要:微信支付方式付款碼支付適用于線下場(chǎng)所支付支付是指商戶通過(guò)調(diào)用微信支付提供的接口,在支付場(chǎng)景中調(diào)起微信支付模塊完成收款。主要用于觸屏版的手機(jī)瀏覽器請(qǐng)求微信支付的場(chǎng)景??梢苑奖愕膹耐獠繛g覽器喚起微信支付。 微信支付方式(https://pay.weixin.qq.com/sta...): 1、付款碼支付————————適用于線下場(chǎng)所 2、JSAPI支付————————JSAPI支付是指商戶...
摘要:項(xiàng)目版本微信的支付邏輯與支付寶的支付有一些差別。調(diào)用微信支付不同接口需要的參數(shù)會(huì)有差別。調(diào)用客戶端的方式查看微信文檔掃碼支付返回了一個(gè)地址??芍苯臃湃胛⑿诺耐瓿烧{(diào)用。 payment 項(xiàng)目2.0版本 微信的支付邏輯與支付寶的支付有一些差別。為了讓客戶端忽略這些差別,統(tǒng)一調(diào)用。本sdk做了對(duì)應(yīng)處理。 # SDK調(diào)用 微信支付不同接口需要的參數(shù)會(huì)有差別。請(qǐng)大家在使用接口時(shí),仔細(xì)查看文檔。...
摘要:移動(dòng)應(yīng)用想要調(diào)用微信的支付功能,需要到微信開(kāi)發(fā)平臺(tái)申請(qǐng)創(chuàng)建移動(dòng)應(yīng)用,微信會(huì)給,拿到到中打開(kāi)一個(gè)項(xiàng)目,添加對(duì)應(yīng)的。當(dāng)前端拿到值后調(diào)用即拉取微信支付彈窗付費(fèi)。的搜一下就能出來(lái),為后端返回的要傳給微信的參數(shù)。 移動(dòng)應(yīng)用想要調(diào)用微信的支付功能,需要到微信開(kāi)發(fā)平臺(tái)申請(qǐng)創(chuàng)建移動(dòng)應(yīng)用,微信會(huì)給appid,拿到appid到HBuilderX中打開(kāi)一個(gè)uni-app項(xiàng)目,添加對(duì)應(yīng)的sdk。 在微信開(kāi)發(fā)...
摘要:移動(dòng)應(yīng)用想要調(diào)用微信的支付功能,需要到微信開(kāi)發(fā)平臺(tái)申請(qǐng)創(chuàng)建移動(dòng)應(yīng)用,微信會(huì)給,拿到到中打開(kāi)一個(gè)項(xiàng)目,添加對(duì)應(yīng)的。當(dāng)前端拿到值后調(diào)用即拉取微信支付彈窗付費(fèi)。的搜一下就能出來(lái),為后端返回的要傳給微信的參數(shù)。 移動(dòng)應(yīng)用想要調(diào)用微信的支付功能,需要到微信開(kāi)發(fā)平臺(tái)申請(qǐng)創(chuàng)建移動(dòng)應(yīng)用,微信會(huì)給appid,拿到appid到HBuilderX中打開(kāi)一個(gè)uni-app項(xiàng)目,添加對(duì)應(yīng)的sdk。 在微信開(kāi)發(fā)...
閱讀 3558·2021-11-08 13:15
閱讀 2115·2019-08-30 14:20
閱讀 1396·2019-08-28 18:08
閱讀 989·2019-08-28 17:51
閱讀 1496·2019-08-26 18:26
閱讀 2998·2019-08-26 13:56
閱讀 1494·2019-08-26 11:46
閱讀 2594·2019-08-23 14:22