日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP實現微信小程序在線支付功能(代碼實例)

瀏覽:195日期:2022-06-02 11:23:32

小程序訪問地址:payfee.php 如果使用TP框架處理后臺的話,寫成方法即可

include ’WeixinPay.php’;$appid=’’; //小程序appid$openid= $_POST[’id’];$mch_id=’’; //微信支付商戶支付號$key=’’; //Api密鑰$out_trade_no = $mch_id. time();$total_fee = $_POST[’fee’];if (empty($total_fee)) { //押金 $body = '充值押金'; $total_fee = floatval(99*100);} else { $body = '充值余額'; $total_fee = floatval($total_fee*100); }$weixinpay = new WeixinPay($appid,$openid,$mch_id,$key,$out_trade_no,$body,$total_fee);$return=$weixinpay->pay();echo json_encode($return);

WeixinPay.php微信小程序支付類 所有微信小程序需要的參數都已經寫入

/* * 小程序微信支付 */class WeixinPay { protected $appid; protected $mch_id; protected $key; protected $openid; protected $out_trade_no; protected $body; protected $total_fee; function __construct($appid, $openid, $mch_id, $key,$out_trade_no,$body,$total_fee) { $this->appid = $appid; $this->openid = $openid; $this->mch_id = $mch_id; $this->key = $key; $this->out_trade_no = $out_trade_no; $this->body = $body; $this->total_fee = $total_fee; } 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’ => ’test’, //商品描述 ’body’ => $this->body,// ’out_trade_no’ => ’2018013106125348’, //商戶訂單號 ’out_trade_no’=> $this->out_trade_no,// ’total_fee’ => floatval(0.01 * 100), //總金額 單位 分 ’total_fee’ => $this->total_fee, ’spbill_create_ip’ => $_SERVER[’REMOTE_ADDR’], //終端IP // ’spbill_create_ip’ => ’192.168.0.161’, //終端IP ’notify_url’ => ’https://www.weixin.qq.com/wxpay/notify.php’, //通知地址 確保外網能正常訪問 ’openid’ => $this->openid, //用戶id ’trade_type’ => ’JSAPI’//交易類型 ); //統一下單簽名 $parameters[’sign’] = $this->getSign($parameters); $xmlData = $this->arrayToXml($parameters); $return = $this->xmlToArray($this->postXmlCurl($xmlData, $url, 60)); return $return; } private static function postXmlCurl($xml, $url, $second = 30) { $ch = curl_init(); //設置超時 curl_setopt($ch, CURLOPT_TIMEOUT, $second); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //嚴格校驗 //設置header curl_setopt($ch, CURLOPT_HEADER, FALSE); //要求結果為字符串且輸出到屏幕上 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //post提交方式 curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); curl_setopt($ch, CURLOPT_TIMEOUT, 40); set_time_limit(0); //運行curl $data = curl_exec($ch); //返回結果 if ($data) { curl_close($ch); return $data; } else { $error = curl_errno($ch); curl_close($ch); throw new WxPayException('curl出錯,錯誤碼:$error'); } } //數組轉換成xml private function arrayToXml($arr) { $xml = '<xml>'; foreach ($arr as $key => $val) { if (is_array($val)) {$xml .= '<' . $key . '>' . arrayToXml($val) . '</' . $key . '>'; } else {$xml .= '<' . $key . '>' . $val . '</' . $key . '>'; } } $xml .= '</xml>'; return $xml; } //xml轉換成數組 private function xmlToArray($xml) { //禁止引用外部xml實體 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, ’SimpleXMLElement’, LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring), true); return $val; } //微信小程序接口 private function weixinapp() { //統一下單接口 $unifiedorder = $this->unifiedorder();// print_r($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; }}

小程序頁面請求處理:

wx.request({ url: ’https://yourhost.com/wxpay/payfee.php’,//改成你自己的鏈接 data:{ id: app.globalData.openid,//獲取用戶openid fee:100 //商品價格 }, 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(res); }, ’complete’: function (res) { console.log(’complete’); } }); }, fail: function (res) { console.log(res.data) } });

回調URL:notify.php

$postXml = $GLOBALS['HTTP_RAW_POST_DATA']; //接收微信參數 // 接受不到參數可以使用file_get_contents('php://input'); PHP高版本中$GLOBALS好像已經被廢棄了if (empty($postXml)) { return false;} //將xml格式轉換成數組function xmlToArray($xml) { //禁止引用外部xml實體 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, ’SimpleXMLElement’, LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring), true); return $val;}$attr = xmlToArray($postXml);$total_fee = $attr[’total_fee’];$open_id = $attr[’openid’];$out_trade_no = $attr[’out_trade_no’];$time = $attr[’time_end’];

So:在微信的異步通知后,也需要給微信服務器,返回一個信息,只不過微信的所有數據格式都是xml的,所以我們在返回一個數據給微信即可。

echo exit(’<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>’);

總結

到此這篇關于PHP微信小程序在線支付功能的文章就介紹到這了,更多相關php 微信小程序在線支付內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微信
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲激情欧美| 欧美午夜不卡| 欧美日韩激情| 亚洲人成毛片在线播放女女| 国产欧美日韩在线一区二区 | 日韩久久精品| 五月激激激综合网色播| 成人在线网站| 夜鲁夜鲁夜鲁视频在线播放| 欧美精品1区| 青青青国产精品| 婷婷精品在线| 亚洲涩涩在线| 久久久9色精品国产一区二区三区| 麻豆免费精品视频| 高清不卡一区| 日本欧美一区二区在线观看| 国产精品成人自拍| 麻豆精品久久| 日韩中文首页| 成人美女视频| 国产精品毛片| 亚洲国产成人精品女人| 日精品一区二区三区| 亚洲三级视频| 国产探花一区在线观看| 日韩精品欧美成人高清一区二区| 伊人精品一区| 伊人久久大香线蕉av不卡| 日韩中文字幕1| 日本午夜免费一区二区 | 国产精品视区| 欧美日韩国产综合网| 国产精品草草| 欧美日一区二区在线观看| 奇米亚洲欧美| 麻豆精品在线视频| 美日韩一区二区三区| 国产成人1区| 欧美精品一区二区久久| 热久久久久久久| 欧美亚洲国产日韩| 久久免费视频66| 亚洲二区精品| 日本天堂一区| 黑人精品一区| 蜜桃av一区| 欧美日韩一视频区二区| 国产自产自拍视频在线观看| 欧美日中文字幕| 免播放器亚洲一区| 国产精品久久久久毛片大屁完整版| 久久久久久婷| 久久亚洲图片| 精品视频一区二区三区在线观看 | 国产精品社区| 国产精品成人国产| 99热精品在线| 国产欧美日韩影院| 成人看片网站| 欧美综合精品| 精品成人免费一区二区在线播放| 亚洲欧美在线综合| 日韩久久精品| 日韩高清在线不卡| 亚洲成人精品| 欧美私人啪啪vps| 蜜桃视频欧美| 久久wwww| 日韩在线卡一卡二| 中文字幕人成乱码在线观看| 亚洲精品高潮| 99久久精品网| 欧美中文高清| 不卡在线一区| 精品一区二区三区视频在线播放| 香蕉成人久久| 日韩欧美二区| 国产精品亚洲四区在线观看| 9色国产精品| 国产精品13p| 国产日韩欧美一区二区三区| 99成人在线| 精品免费av在线| 国产精品久久| 亚洲精品裸体| 国产在线不卡| 精品一区二区三区中文字幕视频 | 国产精品一区三区在线观看| 91精品啪在线观看国产18| 国产精品久久久久久久久久白浆| 精品91久久久久| 福利在线免费视频| 日韩激情av在线| 亚洲在线一区| 日韩欧美一区二区三区在线观看| 国产精品成人3p一区二区三区| 日韩午夜高潮| 久久免费国产| 福利一区二区| 国产精品久久久久久妇女| 亚洲久久视频| 日韩影院精彩在线| 国精品一区二区三区| 成人在线视频区| 国产极品模特精品一二| 日韩精品中文字幕一区二区| 国产午夜精品一区二区三区欧美| 午夜欧美巨大性欧美巨大| 久久久91麻豆精品国产一区| 国产日韩欧美在线播放不卡| 日韩精品亚洲专区| 亚洲激情不卡| 99久久久久国产精品| sm捆绑调教国产免费网站在线观看| 国产精品啊啊啊| 国产午夜久久av| 欧美在线看片| 亚州国产精品| 亚洲人亚洲人色久| 亚洲综合小说| 午夜亚洲福利| 日韩精品高清不卡| 亚洲精品伊人| 亚洲精品九九| 日韩一区网站| 日本aⅴ精品一区二区三区| 亚洲影视一区| 中文字幕亚洲在线观看| 免费观看在线综合色| 中文在线日韩| 日韩高清不卡一区| 国产欧美日韩精品一区二区免费 | 欧美日韩午夜| 国产精品免费大片| 精品视频一区二区三区在线观看 | 黄色精品视频| 国产一区一一区高清不卡| 国产a亚洲精品| 日韩国产一区| 91成人精品视频| 日韩制服丝袜先锋影音| 日韩有吗在线观看| 国产欧美日韩亚洲一区二区三区| 国产高清视频一区二区| 免费视频一区二区三区在线观看| 国产精品亚洲综合色区韩国| 久久精品国产99国产| 国产精品4hu.www| 国模精品一区| 久久要要av| 久热精品在线| 欧美日韩午夜| 国产精品99在线观看| 久久蜜桃资源一区二区老牛| 99综合视频| 日本欧美大码aⅴ在线播放| 国产精品magnet| 久久精品成人| 蜜臀久久99精品久久久画质超高清| 三级欧美在线一区| 国产精品15p| 欧美综合另类| 亚洲精品中文字幕99999| 精品中国亚洲| 日韩一区二区三区在线免费观看| 一本色道精品久久一区二区三区| 日韩高清不卡一区| 成人国产精品一区二区网站| 欧美在线亚洲| 日韩国产在线观看| 91大神在线观看线路一区| 日韩有吗在线观看| 欧美精品一区二区久久| 亚洲日本欧美| 国产一区二区三区四区二区| 欧美特黄一级大片| 亚洲一区二区三区无吗| 亚洲有吗中文字幕| 亚洲影视一区| 日韩精品社区| 日日夜夜免费精品| 黄色不卡一区| 青青草国产成人99久久| 久久人人97超碰国产公开结果| 亚洲综合专区| 亚洲国内精品| 怡红院精品视频在线观看极品| 精品免费av在线| 三级欧美在线一区| 国产一区一一区高清不卡| 亚洲欧洲一区二区天堂久久| 国产日韩中文在线中文字幕| 另类专区亚洲| 日韩中出av| 久久青草久久| 国产精品嫩模av在线| 女同性一区二区三区人了人一| 欧美日韩夜夜| 黑丝美女一区二区|