摘要:文檔注開放平臺的微信支付和公眾號的微信支付是不一樣的,公眾平臺和開放平臺的支付申請下來之后會有各自對應的商戶平臺賬號注意區分公眾號和商戶號不同隨機數自己定義一個不重復訂單號微信通過微信授權登錄獲取注意這里傳給微信的單位是分商戶后臺自定義的超
文檔
注:開放平臺的微信支付和公眾號的微信支付是不一樣的,公眾平臺和開放平臺的支付申請下來之后會有各自對應的商戶平臺賬號
function wechat($appid,$mchid,$appkey,$cert_path,$key_path,$order_id,$openid,$amount,$desc){ $arr = [ "mch_appid"=>$appid,//注意區分公眾號和app商戶號不同 "mchid"=>$mchid, "nonce_str"=>str_random(32),//隨機數 "partner_trade_no"=>$order_id,//自己定義一個不重復訂單號 "openid"=>$openid,//微信openid 通過微信授權登錄獲取 "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;//商戶后臺自定義的 $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(); //超時時間 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); //默認格式為PEM curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM"); curl_setopt($ch,CURLOPT_SSLCERT,$cert_path);//注意區分公眾號和app商戶號的證書不同,需要到pay.weixin.qq.com后臺下載 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.設置curl的參數 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.關閉 curl_close($curl); if ($res == "json") { return json_decode($output,true); } } function getWxAccessToken(){ if ( $_SESSION["access_token"] && $_SESSION["expire_time"] > time() ) { //未過期 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支付服務端php sdk開發教程
https://github.com/fanhefan/w...
微信紅包API接口
http://jeffchen.sinaapp.com/
http://tao.logdown.com/posts/...
微信支付 一步一個坑的APP支付
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21268.html
摘要:本文是淺析微信支付系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。淺析微信支付前篇大綱微信支付是集成在微信客戶端的支付功能,用戶可以通過手機完成快速的支付流程。目前微信支付支持手機系統有蘋果安卓和。 本文是【淺析微信支付】系列文章的第二篇,主要講解一下普通商戶接入的支付方式以及其中的不同之處。 上篇文章講了本系列的大綱,沒有看過的朋友們可以看一下。 淺析微信支...
摘要:前者集成在中,后者主要是為微信用戶提供了另一種支付方式需要在微信的內置瀏覽器中打開頁面,再調起微信支付。步驟商戶后臺收到用戶支付單,調用微信支付統一下單接口。拿到所有參數后,就可以在頁面中發起微信支付的請求了。 微信支付,支持的支付方式比較多:有掃碼支付,刷卡支付,APP支付和公眾號支付。其中,APP和網站上最常用的就是APP支付和公眾號支付。前者集成在APP中,后者主要是為微信用戶提...
摘要:微信支付方式付款碼支付適用于線下場所支付支付是指商戶通過調用微信支付提供的接口,在支付場景中調起微信支付模塊完成收款。主要用于觸屏版的手機瀏覽器請求微信支付的場景。可以方便的從外部瀏覽器喚起微信支付。 微信支付方式(https://pay.weixin.qq.com/sta...): 1、付款碼支付————————適用于線下場所 2、JSAPI支付————————JSAPI支付是指商戶...
摘要:項目版本微信的支付邏輯與支付寶的支付有一些差別。調用微信支付不同接口需要的參數會有差別。調用客戶端的方式查看微信文檔掃碼支付返回了一個地址。可直接放入微信的完成調用。 payment 項目2.0版本 微信的支付邏輯與支付寶的支付有一些差別。為了讓客戶端忽略這些差別,統一調用。本sdk做了對應處理。 # SDK調用 微信支付不同接口需要的參數會有差別。請大家在使用接口時,仔細查看文檔。...
摘要:移動應用想要調用微信的支付功能,需要到微信開發平臺申請創建移動應用,微信會給,拿到到中打開一個項目,添加對應的。當前端拿到值后調用即拉取微信支付彈窗付費。的搜一下就能出來,為后端返回的要傳給微信的參數。 移動應用想要調用微信的支付功能,需要到微信開發平臺申請創建移動應用,微信會給appid,拿到appid到HBuilderX中打開一個uni-app項目,添加對應的sdk。 在微信開發...
摘要:移動應用想要調用微信的支付功能,需要到微信開發平臺申請創建移動應用,微信會給,拿到到中打開一個項目,添加對應的。當前端拿到值后調用即拉取微信支付彈窗付費。的搜一下就能出來,為后端返回的要傳給微信的參數。 移動應用想要調用微信的支付功能,需要到微信開發平臺申請創建移動應用,微信會給appid,拿到appid到HBuilderX中打開一個uni-app項目,添加對應的sdk。 在微信開發...
閱讀 3551·2021-11-08 13:15
閱讀 2107·2019-08-30 14:20
閱讀 1386·2019-08-28 18:08
閱讀 977·2019-08-28 17:51
閱讀 1484·2019-08-26 18:26
閱讀 2989·2019-08-26 13:56
閱讀 1484·2019-08-26 11:46
閱讀 2586·2019-08-23 14:22