微信小程序 支付功能實(shí)現(xiàn)PHP實(shí)例詳解
成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為汝陽企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),汝陽網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
前端代碼:
wx.request({ url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee',//改成你自己的鏈接 header: { 'Content-Type': 'application/x-www-form-urlencoded' }, method:'POST', success: function(res) { console.log(res.data); console.log('調(diào)起支付'); wx.requestPayment({ 'timeStamp': res.data.timeStamp, 'nonceStr': res.data.nonceStr, 'package': res.data.package, 'signType': 'MD5', 'paySign': res.data.paySign, 'success':function(res){ console.log('success'); wx.showToast({ title: '支付成功', icon: 'success', duration: 3000 }); }, 'fail':function(res){ console.log('fail'); }, 'complete':function(res){ console.log('complete'); } }); }, fail:function(res){ console.log(res.data) } });
后端代碼:
//支付費(fèi)用 public function payJoinfee(){ $appid='wx888888888'; $openid='oCQwY0Q_pzrQpu8888888'; $mch_id='141388888'; $key='9A0A86888888888'; import('Weixin.Lib.WeixinPay'); $weixinpay = new \WeixinPay($appid,$openid,$mch_id,$key); $return=$weixinpay->pay(); $this->response($return,'json'); }
微信支付類
<?php /* * 小程序微信支付 */ class WeixinPay{ protected $appid; protected $mch_id; protected $key; protected $openid; function __construct($appid,$openid,$mch_id,$key){ $this->appid=$appid; $this->openid=$openid; $this->mch_id=$mch_id; $this->key=$key; } public function pay(){ //統(tǒng)一下單接口 $return=$this->weixinapp(); return $return; } //統(tǒng)一下單接口 private function unifiedorder(){ $url='https://api.mch.weixin.qq.com/pay/unifiedorder'; $parameters=array( 'appid'=>$this->appid,//小程序ID 'mch_id'=>$this->mch_id,//商戶號(hào) 'nonce_str'=>$this->createNoncestr(),//隨機(jī)字符串 'body'=>'測試',//商品描述 'out_trade_no'=>'2015450806125346',//商戶訂單號(hào) 'total_fee'=>floatval(0.01*100),//總金額 單位 分 'spbill_create_ip'=>$_SERVER['REMOTE_ADDR'],//終端IP 'notify_url'=>'http://www.weixin.qq.com/wxpay/pay.php',//通知地址 'openid'=>$this->openid,//用戶id 'trade_type'=>'JSAPI'//交易類型 ); //統(tǒng)一下單簽名 $parameters['sign']=$this->getSign($parameters); $xmlData=arrayToXml($parameters); $return=xmlToArray(postXmlSSLCurl($xmlData,$url,60)); return $return; } //微信小程序接口 private function weixinapp(){ //統(tǒng)一下單接口 $unifiedorder=$this->unifiedorder(); $parameters=array( 'appId'=>$this->appid,//小程序ID 'timeStamp'=>''.time().'',//時(shí)間戳 'nonceStr'=>$this->createNoncestr(),//隨機(jī)串 'package'=>'prepay_id='.$unifiedorder['prepay_id'],//數(shù)據(jù)包 'signType'=>'MD5'//簽名方式 ); //簽名 $parameters['paySign']=$this->getSign($parameters); return $parameters; } //作用:產(chǎn)生隨機(jī)字符串,不長于32位 private function createNoncestr($length = 32 ){ $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str =""; for ( $i = 0; $i < $length; $i++ ) { $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1); } return $str; } //作用:生成簽名 private function getSign($Obj){ foreach ($Obj as $k => $v){ $Parameters[$k] = $v; } //簽名步驟一:按字典序排序參數(shù) ksort($Parameters); $String = $this->formatBizQueryParaMap($Parameters, false); //簽名步驟二:在string后加入KEY $String = $String."&key=".$this->key; //簽名步驟三:MD5加密 $String = md5($String); //簽名步驟四:所有字符轉(zhuǎn)為大寫 $result_ = strtoupper($String); return $result_; } ///作用:格式化參數(shù),簽名過程需要使用 private function formatBizQueryParaMap($paraMap, $urlencode){ $buff = ""; ksort($paraMap); foreach ($paraMap as $k => $v){ if($urlencode) { $v = urlencode($v); } $buff .= $k . "=" . $v . "&"; } $reqPar; if (strlen($buff) > 0){ $reqPar = substr($buff, 0, strlen($buff)-1); } return $reqPar; } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
名稱欄目:微信小程序支付功能實(shí)現(xiàn)PHP實(shí)例詳解
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article46/pshshg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、Google、網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)