微信小程序怎樣用PHP實(shí)現(xiàn)支付功能

這篇文章主要介紹微信小程序怎樣用PHP實(shí)現(xiàn)支付功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),遠(yuǎn)安網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:遠(yuǎn)安等地區(qū)。遠(yuǎn)安做網(wǎng)站價(jià)格咨詢:18980820575

微信小程序 支付功能實(shí)現(xiàn)PHP實(shí)例詳解

前端代碼:

 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'=>'測(cè)試',//商品描述
  '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ī)字符串,不長(zhǎng)于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;
 }
}

以上是“微信小程序怎樣用PHP實(shí)現(xiàn)支付功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:微信小程序怎樣用PHP實(shí)現(xiàn)支付功能
標(biāo)題鏈接:http://muchs.cn/article18/gepggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、面包屑導(dǎo)航、品牌網(wǎng)站制作軟件開發(fā)、外貿(mào)建站網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化