當前位置:首頁 > CMS教程 > Thinkphp > 列表

Thinkphp和onethink實現微信支付插件

發布:smiling 來源: PHP粉絲網  添加日期:2019-09-29 17:08:34 瀏覽: 評論:0 

thinkPHP和微支付實現的微信支付插件,在微信中調用微信jssdk實現支付,這里有詳細的代碼和教程,具體看這里:

  1. //實現的Wxpay鉤子方法 
  2.  
  3.     public function Wxpay($param){ 
  4.  
  5.       require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php'
  6.  
  7.       $jsApi = new \JsApi_pub();  
  8.  
  9.          
  10.  
  11.       //=========步驟1:網頁授權獲取用戶openid============ 
  12.  
  13.       if (!isset($_GET['code'])) 
  14.  
  15.       { 
  16.  
  17.         //觸發微信返回code碼 
  18.  
  19.         $url = $jsApi->createOauthUrlForCode(\WxPayConf_pub::JS_API_CALL_URL.'/order_id/'.$param['order_id']); 
  20.  
  21.         Header("Location: $url"); 
  22.  
  23.       }else 
  24.  
  25.       { 
  26.  
  27.         $order_id = $param['order_id']; 
  28.  
  29.         $info = M('Order')->where('id='.$order_id)->find(); 
  30.  
  31.         if(emptyempty($info) || $info['is_pay'] == 1){ 
  32.  
  33.           dump('該訂單不存在或已支付'.$order_id); 
  34.  
  35.           exit(); 
  36.  
  37.         } 
  38.  
  39.         $this->assign('info'$info); 
  40.  
  41.         $a = $info['money']; 
  42.  
  43.         $b = 100; 
  44.  
  45.         $c = $a * $b
  46.  
  47.            
  48.  
  49.         //獲取code碼,以獲取openid 
  50.  
  51.         $code = $_GET['code']; 
  52.  
  53.         $jsApi->setCode($code); 
  54.  
  55.         $openid = $jsApi->getOpenId(); 
  56.  
  57.       } 
  58.  
  59.          
  60.  
  61.       //=========步驟2:使用統一支付接口,獲取prepay_id============ 
  62.  
  63.       //使用統一支付接口 
  64.  
  65.       $unifiedOrder = new \UnifiedOrder_pub(); 
  66.  
  67.          
  68.  
  69.       $unifiedOrder->setParameter("openid","$openid");//商品描述 
  70.  
  71.       $unifiedOrder->setParameter("body","在線預訂");//商品描述 
  72.  
  73.       //自定義訂單號,此處僅作舉例 
  74.  
  75.       $timeStamp = time(); 
  76.  
  77. //       $out_trade_no = \WxPayConf_pub::APPID."$timeStamp"; 
  78.  
  79.       $out_trade_no = $info['ordersn']; 
  80.  
  81.       $unifiedOrder->setParameter("out_trade_no""$out_trade_no");//商戶訂單號 
  82.  
  83.       $unifiedOrder->setParameter("total_fee""$c");//總金額 
  84.  
  85.       $unifiedOrder->setParameter("notify_url",\WxPayConf_pub::NOTIFY_URL.'/order_id/'.$param['order_id']);//通知地址 
  86.  
  87.       $unifiedOrder->setParameter("trade_type","JSAPI");//交易類型 
  88.  
  89.          
  90.  
  91.       $prepay_id = $unifiedOrder->getPrepayId(); 
  92.  
  93.       //=========步驟3:使用jsapi調起支付============ 
  94.  
  95.       $jsApi->setPrepayId($prepay_id); 
  96.  
  97.       $jsApiParameters = $jsApi->getParameters(); 
  98.  
  99.       $this->assign('jsApiParameters'$jsApiParameters); 
  100.  
  101.   //phpfensi.com 
  102.  
  103.       $this->display('pay'); 
  104.  
  105.     } 

Tags: Thinkphp onethink

分享到:

广西快3最大遗漏值统计表