微信小程序 支付功能实现PHP实例详解
前端代码:
wx.request({ url: http://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= http://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- //签名步骤三: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;}
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !
相关推荐:
关于微信小程序的登陆流程
关于微信小程序的商城开发(ecshop )
微信小程序中购物车的简单实例
以上就是微信小程序用PHP实现支付功能的详细内容,其它编程语言
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答