微信小程序 支付功能实现PHP实例详解
家电修理 2023-07-16 19:16www.caominkang.com电器维修
微信小程序 支付功能实现PHP实例详解
前端代码
x.request({ url: 'https://.yourhost./eixin/WeiActivity/payJoinfee',//改成你自己的链接 header: { 'Content-Type': 'application/x--form-urlencoded' }, method:'POST', suess: function(res) { console.log(res.data); console.log('调起支付'); x.requestPayment({ 'timeStamp': res.data.timeStamp, 'nonceStr': res.data.nonceStr, 'package': res.data.package, 'signType': 'MD5', 'paySign': res.data.paySign, 'suess':function(res){ console.log('suess'); x.shoToast({ title: '支付成功', icon: 'suess', duration: 3000 }); }, 'fail':function(res){ console.log('fail'); }, 'plete':function(res){ console.log('plete'); } }); }, fail:function(res){ console.log(res.data) } });
后端代码
//支付费用 public function payJoinfee(){ $appid='x888888888'; $openid='oCQY0Q_pzrQpu8888888'; $mch_id='141388888'; $key='9A0A86888888888'; import('Weixin.Lib.WeixinPay'); $eixinpay = ne WeixinPay($appid,$openid,$mch_id,$key); $return=$eixinpay->pay(); $this->response($return,'json'); }
微信支付类
appid=$appid; $this->openid=$openid; $this->mch_id=$mch_id; $this->key=$key; } public function pay(){ //统一下单接口 $return=$this->eixinapp(); return $return; } //统一下单接口 private function unifiedorder(){ $url='https://api.mch.eixin.qq./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.01100),//总金额 单位 分 'spbill_create_ip'=>$_SERVER['REMOTE_ADDR'],//终端IP 'notify_url'=>'http://.eixin.qq./xpay/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 eixinapp(){ //统一下单接口 $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 = "abcdefghijklmnopqrstuvxyz0123456789"; $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; } }
感谢阅读,电脑维修网希望能帮助到大家,谢谢大家对本站的支持!
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工