国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序 支付功能實現PHP實例詳解

2019-11-19 16:35:39
字體:
來源:轉載
供稿:網友

微信小程序 支付功能實現PHP實例詳解

前端代碼:

 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('調起支付');      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)    }  });

后端代碼:

//支付費用 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(){ //統一下單接口 $return=$this->weixinapp(); return $return; } //統一下單接口 private function unifiedorder(){ $url='https://api.mch.weixin.qq.com/pay/unifiedorder'; $parameters=array(  'appid'=>$this->appid,//小程序ID  'mch_id'=>$this->mch_id,//商戶號  'nonce_str'=>$this->createNoncestr(),//隨機字符串  'body'=>'測試',//商品描述  'out_trade_no'=>'2015450806125346',//商戶訂單號  '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'//交易類型 ); //統一下單簽名 $parameters['sign']=$this->getSign($parameters); $xmlData=arrayToXml($parameters);  $return=xmlToArray(postXmlSSLCurl($xmlData,$url,60));  return $return; } //微信小程序接口 private function weixinapp(){ //統一下單接口 $unifiedorder=$this->unifiedorder();  $parameters=array(  'appId'=>$this->appid,//小程序ID  'timeStamp'=>''.time().'',//時間戳  'nonceStr'=>$this->createNoncestr(),//隨機串  'package'=>'prepay_id='.$unifiedorder['prepay_id'],//數據包  'signType'=>'MD5'//簽名方式 ); //簽名 $parameters['paySign']=$this->getSign($parameters);  return $parameters; } //作用:產生隨機字符串,不長于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; } //簽名步驟一:按字典序排序參數 ksort($Parameters); $String = $this->formatBizQueryParaMap($Parameters, false); //簽名步驟二:在string后加入KEY $String = $String."&key=".$this->key; //簽名步驟三:MD5加密 $String = md5($String); //簽名步驟四:所有字符轉為大寫 $result_ = strtoupper($String); return $result_; } ///作用:格式化參數,簽名過程需要使用 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; }} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静安区| 凤山市| 治县。| 油尖旺区| 通州市| 陆河县| 读书| 小金县| 宜阳县| 句容市| 阿荣旗| 来安县| 宣城市| 阿瓦提县| 托克逊县| 沙坪坝区| 固始县| 昔阳县| 巫溪县| 海宁市| 仲巴县| 万州区| 辛集市| 镇安县| 崇仁县| 白沙| 龙海市| 双牌县| 集安市| 遂平县| 高州市| 巧家县| 迁安市| 五原县| 蕲春县| 商水县| 峨山| 武陟县| 贵阳市| 唐山市| 平潭县|