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

首頁 > 開發 > JS > 正文

微信掃碼支付零云插件版實例詳解

2024-05-06 16:36:48
字體:
來源:轉載
供稿:網友

微信掃碼支付零云插件版實例詳解

微信的掃碼支付主要有以下過程:

向微信統一下單地址發送詳細的訂單信息,微信返回json數據,里面包含生成二維碼的字段,使用生成二維碼的插件qrcode生成二維碼返回給前端,讓用戶掃碼完成支付,然后頁面跳轉到return_url告知用戶支付成功,微信服務器正式通知支付成功之后修改數據庫數據。

//Pay類下的主要方法public function buildRequestForm($pay_data){  $UNIFIED_ORDER_URL = 'weixin://wxpay/bizpayurl?sign'; //統一下單地址  $data = array();  $data['appid'] = $this->config['appid'];  $data['mch_id'] = $this->config['mchid'];  $data['nonce_str'] = $this->getNonceStr(32); //隨機32位字符串  $data['sign'] = $this->MakeSign($data);  //簽名  $data['product_id'] = $pay_data['out_trade_no'];  $data['body'] = $pay_data['title'];  $data['detail'] = $pay_data['title'].' Wechat Payment';  $data['out_trade_no'] = $pay_data['out_trade_no'];  $data['fee_type'] = 'USD'; //使用美元支付  $data['total_fee'] = 1; //注意 單位是分  $data['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'];  $data['notify_url'] = $this->config['notify_url'];  $data['trade_type'] = "NATIVE"; //交易類型  //轉為xml格式  $xml_param = $this->ToXml($data);  // //發送請求 使用封裝好的curl_post  $result = $this->FromXml($this->postXmlCurl($xml_param, $this->gateway));  if ($result['return_code'] === 'SUCCESS') {    if ($this->CheckSign($result)) {      $code_img = $this->get_code_src($result['code_url']);      $return_data['code_img'] = $code_img;      $return_data['pay_data'] = $data;      return $return_data;    } else {      E("微信訂單錯誤!");    }  } else {    E("微信訂單錯誤!". $result['return_msg']);  }} /* * 生成二維碼 * @param string $code_url,需要生成二維碼的地址; * @return $filepath,生成的二維碼圖片所在地址; */public function get_code_src($code_url) {  $QRcode = new /PHPQRCode/QRcode();  $filename = time().$this->getNonceStr(3).'.png';  $filepath = request()->domain() . __ROOT__ .'/Uploads/qrcode/'.$filename;  $res = $QRcode->png($code_url,'./Uploads/qrcode/'.$filename);  return $filepath;}

調用過程如下:

/* 調用是在Controller的一個方法下面,這里只截取了一段,具體如何使用視自己情況而定。 * @param string $pay_type,支付類型‘wxpay'; * @param array $pay_info詳細的支付信息,包括訂單標題、金額、商品數量等等信息; * @param array $pay_config,支付配置,包括appID,appSecrt; */$pay = new Pay($info['pay_type'], $pay_config);if($info['pay_type'] == 'wxpay' && !isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {  $return_data = $pay->buildRequestForm($info);  $this->assign('return_data',$return_data);  $this->assign('return_json',json_encode($return_data));  $this->display(); //向用戶展示二維碼  exit();}

注:零云是基于thinkPHP的快速建站的框架,所以這個插件在TP中也適用。

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荥经县| 乃东县| 永修县| 墨脱县| 林州市| 东丽区| 梁平县| 南京市| 金阳县| 福贡县| 伊吾县| 莱西市| 宁乡县| 鹤壁市| 清新县| 政和县| 富蕴县| 长宁县| 包头市| 太康县| 上犹县| 定西市| 泰来县| 锦屏县| 萨嘎县| 特克斯县| 丰台区| 涪陵区| 澄迈县| 方山县| 乌什县| 昌乐县| 山西省| 织金县| 肥城市| 合阳县| 陆丰市| 革吉县| 霍林郭勒市| 彰武县| 宁乡县|