WeChat 애플릿은 PHP를 사용하여 결제 기능을 구현합니다.

不言
풀어 주다: 2018-06-23 10:40:55
원래의
2614명이 탐색했습니다.

이 글은 주로 WeChat 애플릿 결제 기능의 PHP 예제에 대한 자세한 설명을 소개합니다. 도움이 필요한 친구는 이를 참고할 수 있습니다.

WeChat 애플릿 결제 기능의 PHP 예제에 대한 자세한 설명

프런트엔드 코드:

wx.request({ url: 'https://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'); }
로그인 후 복사

WeChat 결제 클래스

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='https://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->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; } }
로그인 후 복사

위 내용은 이 글의 전체 내용입니다 . 더 많은 관련 내용을 보시려면 PHP 중국어 넷을 주목해주세요!

관련 추천:

WeChat 애플릿의 로그인 프로세스에 대해

WeChat 애플릿(ecshop)의 쇼핑몰 개발에 대해

WeChat 애플릿의 장바구니에 대한 간단한 예

위 내용은 WeChat 애플릿은 PHP를 사용하여 결제 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!