成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > php實(shí)現(xiàn)微信原生支付(掃碼支付)功能

php實(shí)現(xiàn)微信原生支付(掃碼支付)功能

熱門標(biāo)簽:拉薩打電話機(jī)器人 合肥外呼系統(tǒng)app 哈爾濱400電話辦理到易號(hào)網(wǎng) 寶安400電話辦理 電銷機(jī)器人-快迭智能 h5 地圖標(biāo)注 智能外呼電銷系統(tǒng) 沈陽人工智能電銷機(jī)器人公司 高識(shí)別電銷機(jī)器人

網(wǎng)上的很多PHP微信掃碼支付接入教程都頗為復(fù)雜,且需要配置和引入較多的文件,本人通過整理后給出一個(gè)單文件版的,只有200行代碼,希望可以給各位想接入微信掃碼支付的帶來些許幫助和借鑒意義。

直接運(yùn)行該文件即可得到一個(gè)支付二維碼的圖片。

需要注意的事項(xiàng):

1.該文件需放到支付授權(quán)目錄下,可以在微信支付商戶平臺(tái)->產(chǎn)品中心->開發(fā)配置中設(shè)置。
2.如提示簽名錯(cuò)誤可以通過微信支付簽名驗(yàn)證工具進(jìn)行驗(yàn)證:微信公眾平臺(tái)支付接口調(diào)試工具

代碼如下:

?php
header('Content-type:text/html; Charset=utf-8');
$mchid = 'xxxxx';     //微信支付商戶號(hào) PartnerID 通過微信支付商戶資料審核后郵件發(fā)送
$appid = 'xxxxx'; //公眾號(hào)APPID 通過微信支付商戶資料審核后郵件發(fā)送
$apiKey = 'xxxxx';  //https://pay.weixin.qq.com 帳戶設(shè)置-安全設(shè)置-API安全-API密鑰-設(shè)置API密鑰
$wxPay = new WxpayService($mchid,$appid,$apiKey);
$outTradeNo = uniqid();   //你自己的商品訂單號(hào)
$payAmount = 0.01;     //付款金額,單位:元
$orderName = '支付測(cè)試';  //訂單標(biāo)題
$notifyUrl = 'https://www.xxx.com/wx/';   //付款成功后的回調(diào)地址(不要有問號(hào))
$payTime = time();   //付款時(shí)間
$arr = $wxPay->createJsBizPackage($payAmount,$outTradeNo,$orderName,$notifyUrl,$payTime);
//生成二維碼
$url = 'http://qr.liantu.com/api.php?text='.$arr['code_url'];
echo "img src='{$url}' style='width:300px;'>";

class WxpayService
{
  protected $mchid;
  protected $appid;
  protected $apiKey;

  public function __construct($mchid, $appid, $key)
  {
    $this->mchid = $mchid;
    $this->appid = $appid;
    $this->apiKey = $key;
  }

  /**
   * 發(fā)起訂單
   * @param float $totalFee 收款總費(fèi)用 單位元
   * @param string $outTradeNo 唯一的訂單號(hào)
   * @param string $orderName 訂單名稱
   * @param string $notifyUrl 支付結(jié)果通知url 不要有問號(hào)
   * @param string $timestamp 訂單發(fā)起時(shí)間
   * @return array
   */
  public function createJsBizPackage($totalFee, $outTradeNo, $orderName, $notifyUrl, $timestamp)
  {
    $config = array(
      'mch_id' => $this->mchid,
      'appid' => $this->appid,
      'key' => $this->apiKey,
    );
    $orderName = iconv('GBK','UTF-8',$orderName);
    $unified = array(
      'appid' => $config['appid'],
      'attach' => 'pay',       //商家數(shù)據(jù)包,原樣返回,如果填寫中文,請(qǐng)注意轉(zhuǎn)換為utf-8
      'body' => $orderName,
      'mch_id' => $config['mch_id'],
      'nonce_str' => self::createNonceStr(),
      'notify_url' => $notifyUrl,
      'out_trade_no' => $outTradeNo,
      'spbill_create_ip' => '127.0.0.1',
      'total_fee' => intval($totalFee * 100),    //單位 轉(zhuǎn)為分
      'trade_type' => 'NATIVE',
    );
    $unified['sign'] = self::getSign($unified, $config['key']);
    $responseXml = self::curlPost('https://api.mch.weixin.qq.com/pay/unifiedorder', self::arrayToXml($unified));
    $unifiedOrder = simplexml_load_string($responseXml, 'SimpleXMLElement', LIBXML_NOCDATA);
    if ($unifiedOrder === false) {
      die('parse xml error');
    }
    if ($unifiedOrder->return_code != 'SUCCESS') {
      die($unifiedOrder->return_msg);
    }
    if ($unifiedOrder->result_code != 'SUCCESS') {
      die($unifiedOrder->err_code);
    }
    $codeUrl = (array)($unifiedOrder->code_url);
    if(!$codeUrl[0]) exit('get code_url error');
    $arr = array(
      "appId" => $config['appid'],
      "timeStamp" => $timestamp,
      "nonceStr" => self::createNonceStr(),
      "package" => "prepay_id=" . $unifiedOrder->prepay_id,
      "signType" => 'MD5',
      "code_url" => $codeUrl[0],
    );
    $arr['paySign'] = self::getSign($arr, $config['key']);
    return $arr;
  }


  public function notify()
  {
    $config = array(
      'mch_id' => $this->mchid,
      'appid' => $this->appid,
      'key' => $this->apiKey,
    );
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    if ($postObj === false) {
      die('parse xml error');
    }
    if ($postObj->return_code != 'SUCCESS') {
      die($postObj->return_msg);
    }
    if ($postObj->result_code != 'SUCCESS') {
      die($postObj->err_code);
    }
    $arr = (array)$postObj;
    unset($arr['sign']);
    if (self::getSign($arr, $config['key']) == $postObj->sign) {
      echo 'xml>return_code>![CDATA[SUCCESS]]>/return_code>return_msg>![CDATA[OK]]>/return_msg>/xml>';
      return $postObj;
    }
  }

  /**
   * curl get
   *
   * @param string $url
   * @param array $options
   * @return mixed
   */
  public static function curlGet($url = '', $options = array())
  {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    if (!empty($options)) {
      curl_setopt_array($ch, $options);
    }
    //https請(qǐng)求 不驗(yàn)證證書和host
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
  }

  public static function curlPost($url = '', $postData = '', $options = array())
  {
    if (is_array($postData)) {
      $postData = http_build_query($postData);
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設(shè)置cURL允許執(zhí)行的最長(zhǎng)秒數(shù)
    if (!empty($options)) {
      curl_setopt_array($ch, $options);
    }
    //https請(qǐng)求 不驗(yàn)證證書和host
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
  }

  public static function createNonceStr($length = 16)
  {
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $str = '';
    for ($i = 0; $i  $length; $i++) {
      $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
    }
    return $str;
  }

  public static function arrayToXml($arr)
  {
    $xml = "xml>";
    foreach ($arr as $key => $val) {
      if (is_numeric($val)) {
        $xml .= "" . $key . ">" . $val . "/" . $key . ">";
      } else
        $xml .= "" . $key . ">![CDATA[" . $val . "]]>/" . $key . ">";
    }
    $xml .= "/xml>";
    return $xml;
  }
  /**
   * 獲取簽名
   */
  public static function getSign($params, $key)
  {
    ksort($params, SORT_STRING);
    $unSignParaString = self::formatQueryParaMap($params, false);
    $signStr = strtoupper(md5($unSignParaString . "key=" . $key));
    return $signStr;
  }

  protected static function formatQueryParaMap($paraMap, $urlEncode = false)
  {
    $buff = "";
    ksort($paraMap);
    foreach ($paraMap as $k => $v) {
      if (null != $v  "null" != $v) {
        if ($urlEncode) {
          $v = urlencode($v);
        }
        $buff .= $k . "=" . $v . "";
      }
    }
    $reqPar = '';
    if (strlen($buff) > 0) {
      $reqPar = substr($buff, 0, strlen($buff) - 1);
    }
    return $reqPar;
  }
}

github下載地址:weixinPay

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • ThinkPHP框架整合微信支付之Native 掃碼支付模式二圖文詳解
  • ThinkPHP框架整合微信支付之Native 掃碼支付模式一圖文詳解
  • php微信掃碼支付 php公眾號(hào)支付
  • PHP 接入微信掃碼支付總結(jié)(總結(jié)篇)
  • 分享微信掃碼支付開發(fā)遇到問題及解決方案-附Ecshop微信支付插件
  • PC端微信掃碼支付成功之后自動(dòng)跳轉(zhuǎn)php版代碼
  • PHP 微信掃碼支付源代碼(推薦)
  • php實(shí)現(xiàn)微信掃碼支付
  • 微信公眾平臺(tái)開發(fā)教程⑤ 微信掃碼支付模式介紹

標(biāo)簽:威海 成都 梅州 張家口 巴中 山東 林芝 泰州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php實(shí)現(xiàn)微信原生支付(掃碼支付)功能》,本文關(guān)鍵詞  php,實(shí)現(xiàn),微信,原生,支付,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php實(shí)現(xiàn)微信原生支付(掃碼支付)功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于php實(shí)現(xiàn)微信原生支付(掃碼支付)功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久亚洲国产成人精品无码区| 国产精品无码人妻一区二区在线| 99久久精品日本一区二区免费| 五月婷婷丁香六月| 精品视频一区二区在线观看| 在线观看精品一区二区三区| 中文日本在线观看| 精品国产美女福利到在线不卡| 亚洲国产精品字幕| 国产成人av资源| 国产免费黄色大片| 一级免费在线观看| 欧美特黄一区二区三区| aaa亚洲精品一二三区| 亚洲精品成人精品456| 国产视频二区三区| 中文字幕の友人北条麻妃| 97精品国产一区二区三区| 日韩av一区在线观看| 国产麻豆电影在线观看| 黄色a在线观看| 欧美精品成人久久| 国产精品久久久久久久免费软件| 国产精品亚洲a| 国产精品一区二区av影院萌芽| 国产精品一区二区三区在线免费观看| 97久久综合精品久久久综合| 在线观看中文字幕视频| 欧美男男大粗吊1069| 精品久久久久久久久久久| 亚洲欧美国产精品va在线观看| 国产精品全国免费观看高清| 中文字幕一区二区av| 在线观看日韩片| 成人网在线免费看| 久久这里只精品| 亚洲激情电影中文字幕| 亚洲三级视频网站| 含羞草久久爱69一区| 国产麻豆一区二区三区在线观看| 天天操天天操天天操天天| 少妇精品无码一区二区三区| 中文字幕第7页| 色一情一区二区三区四区| 91高清免费观看| 亚洲午夜免费电影| 久久综合色8888| 天天干天天摸天天操| 亚洲一区二区三区四区在线播放| www黄色在线观看视频| brazzers欧美精品| www.久久爱.com| 国模精品一区二区三区| 97av免费视频| 亚洲品质自拍视频| 亚洲精品国产精品国产| 欧美污视频久久久| 国产高清无密码一区二区三区| 自拍欧美日韩| 欧美日韩一区二区区别是什么| 人人妻人人澡人人爽欧美一区| 26uuu亚洲国产精品| 欧美精品18videosex性欧美| 国产精品视频分类| 日本一区二区免费高清| 久草资源站在线观看| 欧美日韩性生活视频| 亚洲乱码国产乱码精品精天堂| 中文字幕区一区二区三| 福利小视频在线| 免费在线看黄网址| 国模吧一区二区三区| 成人永久aaa| 成人黄色网免费| 污污的网站在线看| 成人网在线视频| 好久没做在线观看| 欧美 日韩 国产 成人 在线| 日韩少妇裸体做爰视频| www.天天射.com| 日本男人操女人| 黄漫在线播放| 国产麻豆精品95视频| 天堂国产一区二区三区| 久久亚洲精精品中文字幕| 波多野结衣 久久| 亚洲综合视频在线| 色婷婷av一区二区三| 日本午夜视频在线观看| 成人亚洲性情网站www在线观看| 久久综合网导航| 91论坛在线播放| 精品视频一区二区| 欧美日韩视频第一区| 国产白袜脚足j棉袜在线观看| 一本色道久久88综合日韩精品| 国产午夜精品免费一区二区三区| 日韩视频一区二区| 天堂一本之道| 白嫩亚洲一区二区三区| 国产午夜精品免费一区二区三区| 麻豆av在线播放| a篇片在线观看网站| 久久婷婷五月综合色丁香| 污片在线观看一区二区| 亚洲一区二区av电影| 性欧美性free| 福利地址发布页| 香蕉av777xxx色综合一区| 91大神精品| xxxx.国产| 青娱乐一区二区| 99视频在线观看一区三区| 久久99欧美| 精品久久久免费视频| 欧美xxxx在线观看| 日韩av免费观影| 国产老头老太做爰视频| 色就是色亚洲色图| 久久精品久久精品久久| 九九精品免费视频| 久久久久久久久久久久久91| 亚洲欧洲一级| 免费看日韩毛片| 在线视频国产区| 成人网站免费观看| 一区二区三区四区乱视频| 国产一区二区三区三州| 精品久久久久久| 国产高清一区二区| 亚洲av无码成人精品区| 精品国产髙清在线看国产毛片| 欧美大黑帍在线播放| 午夜精品理论片| 91在线免费视频| 亚洲成人偷拍| 精品国产鲁一鲁一区二区三区| 日本视频一区二区在线观看| 亚洲国产欧美在线人成| 女同性互吃奶乳免费视频| 亚洲精品第一区二区三区| 69国产精品视频免费观看| www.国产com| 无码人妻丰满熟妇啪啪网站| 国产精品麻豆免费版| 欧美日韩国产中文字幕| 精品国产免费一区二区三区四区| 中文字幕亚洲综合久久五月天色无吗''| 国产日本在线视频| 992tv成人免费观看| 亚洲一区二区三区免费在线观看| 91xxx在线观看| 亚洲免费在线视频| 久久99蜜桃| gogo人体高清视频| 日韩av手机在线看| 91porny九色| 亚洲成人精品视频| 久久国产麻豆精品| 91高潮大合集爽到抽搐| 51精产品一区一区三区| 久久久久久国产精品免费无遮挡| www日本高清视频| 97超碰资源站在线观看| 黄色三级视频在线观看| the porn av| 午夜天堂影视香蕉久久| 性欧美暴力猛交69hd| 久久精精品视频| 亚洲乱亚洲高清| 麻豆av一区二区三区久久| 欧美一区三区三区高中清蜜桃| 依依成人精品视频| 熟妇高潮精品一区二区三区| 91中文字精品一区二区| 91caoporn在线| 婷婷夜色潮精品综合在线| 精品综合久久88少妇激情| 国产精品国产三级国产专播精品人| 香蕉久久a毛片| 91丨porny丨在线中文| 亚洲成色999久久网站| 成人av资源网| 女海盗2成人h版中文字幕| 91桃色在线观看| 成人欧美一区二区三区小说| 暖暖在线中文免费日本| 成人精品美女隐私视频| 色偷偷综合社区| 亚洲国产精品第一区二区| 久久久久亚洲av成人网人人软件| 亚洲美女视频在线观看| 99久久久无码国产精品免费蜜柚| 精品一区二区在线播放| 国产精品成人午夜| 在线无限看免费粉色视频| 2色视频网站| 黄色欧美视频| 亚洲美女福利视频网站| 亚洲精品狠狠操| 国产在线看片| 青青草原在线亚洲| 尤物网站在线观看| av一级黄色片| 国产精品久久久久久久久久妞妞| 国产一区二区剧情av在线| 日韩欧美在线1卡| 国产精品v欧美精品v日韩精品| 亚洲资源在线观看| 日本亚洲欧美| 久久精品小视频| 加勒比色老久久爱综合网| 久久av无码精品人妻系列试探| 久久久精品2019中文字幕神马| 一区二区三区免费视频网站| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲1区在线| 一级特黄毛片| 欧美日韩激情在线| 亚洲国产视频在线| 久久久久97国产| 一级毛片在线看| 色猫视频免费观看| 在线不卡日本| 国产精品美女一区二区三区| 久久国产精品1区2区3区网页| 日韩五码电影| 91久久精品国产91久久| 日本a级片在线观看| 成人性生交大片免费网站| 一级片黄色录像| 最新av免费在线观看| 中文字幕在线观看一区| 日韩女优在线观看| 97国产suv精品一区二区62| 亚洲av无码一区二区三区性色| 影音先锋久久资源网| 亚洲国产97在线精品一区| 日韩av一级电影| 手机在线观看毛片| 亚洲一区精品在线观看| 国产亚洲福利社区一区| 国产在线观看精品一区| 欧美调教femdomvk| 国产欧美久久久精品免费| 在线看av的网址| 最近免费中文字幕中文高清百度| 九九热这里只有在线精品视| 日韩亚洲在线视频| 国产99视频精品免费视频36| 人妻少妇精品久久| 精品毛片久久久久久| 毛茸茸多毛bbb毛多视频| 亚洲综合中文字幕在线观看| 最新中文在线视频| 一本久久知道综合久久| 日韩一级黄色大片| 91青青草视频| 免费国产黄色网址| 国产精品激情偷乱一区二区∴| 国产黄色免费观看| 亚洲综合最新在线| 91麻豆精品国产91久久久资源速度| 欧美精品总汇| 黄色片网站在线免费观看| 首页国产欧美日韩丝袜| 亚洲激情专区| 水蜜桃久久夜色精品一区的特点| 成人久久精品人妻一区二区三区| 精品国产鲁一鲁****| 一区二区三区四区视频在线| 一区二区视频国产| 精品国内自产拍在线观看视频| 欧美色图国产精品| 色播一区二区| 霍思燕三级露全乳照| 欧美日韩国产电影| 在线电影中文字幕| 国产精品国产三级国产专业不| 欧美大香线蕉线伊人久久国产精品| 97超碰人人看| 亚洲国产精品嫩草影院久久av| 中文字幕在线看| 日韩福利电影在线观看| 国产精品∨欧美精品v日韩精品| 日本黄xxxxxxxxx100| 国产av无码专区亚洲a∨毛片| 成人小视频在线播放| 国产欧美精品一区二区三区四区| 在线观看不卡av| h网站免费观看| 久久精品男人天堂| 青青草在线免费观看| 日产国产高清一区二区三区| 日韩一级黄色片| 国产亚洲欧美日韩在线观看一区二区| 国产无遮挡免费视频| 免费yellow网站| 精品久久久久久中文字幕一区奶水| 久久久777精品电影网影网| 91成人在线观看喷潮蘑菇| xxxx黑人da| 日本电影全部在线观看网站视频| 亚洲成人激情视频| 色妞色视频一区二区三区四区| 亚洲国产精品福利| 色资源网站在线观看| 美国黑人一级大黄| 国产精品福利电影一区二区三区四区| caoporn-草棚在线视频最| 亚洲japanese制服美女| 五月婷婷开心网| 中文字幕成人在线视频| 国产在线精品不卡| 蜜桃传媒一区二区亚洲| 宅男深夜免费观看视频| 欧美亚洲国产精品| 国产精品久久久久毛片软件| 经典三级久久| 性久久久久久久久久久久久久| 国产日韩高清一区二区三区在线| 亚洲无限乱码一二三四麻| 91精品国产91久久久久久黑人| 天天天天天天天干| 特级丰满少妇一级aaaa爱毛片| 亚洲第一区av| 中文字幕一区二区三区四区五区人| 在线观看精品自拍私拍|