全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

微信小程序 支付功能实现PHP实例详解

微信小程序 支付功能实现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');
 }

微信支付类

<?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='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  # 微信小程序-详解微信登陆、微信支付、模板消息  # 微信小程序 支付后台java实现实例  # PHP:微信小程序 微信支付服务端集成实例详解及源码下载  # 微信小程序 支付功能开发错误总结  # 微信小程序 支付简单实例及注意事项  # 微信小程序支付及退款流程详解  # 微信小程序微信支付接入开发实例详解  # 微信小程序调用微信支付接口的实现方法  # 微信小程序 支付功能(前端)的实现  # 关于微信小程序实现云支付那些事儿  # 下单  # 商户  # 自己的  # 希望能  # 谢谢大家  # 数据包  # 总金额  # 后端  # complete  # appid  # public 


相关文章: 如何在云主机上快速搭建多站点网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  兔展官网 在线制作,怎样制作微信请帖?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何正确下载安装西数主机建站助手?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  建站之星3.0如何解决常见操作问题?  如何设置并定期更换建站之星安全管理员密码?  如何零基础开发自助建站系统?完整教程解析  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  建站之星ASP如何实现CMS高效搭建与安全管理?  建站之星如何修改网站生成路径?  电商网站制作公司有哪些,1688网是什么意思?  如何破解联通资金短缺导致的基站建设难题?  如何高效完成独享虚拟主机建站?  如何选择最佳自助建站系统?快速指南解析优劣  如何自定义建站之星网站的导航菜单样式?  如何高效配置香港服务器实现快速建站?  Python多线程使用规范_线程安全解析【教程】  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何解决VPS建站LNMP环境配置常见问题?  如何实现建站之星域名转发设置?  建站org新手必看:2024最新搭建流程与模板选择技巧  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  建站之星展会模版如何一键下载生成?  定制建站策划方案_专业建站与网站建设方案一站式指南  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  h5网站制作工具有哪些,h5页面制作工具有哪些?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在香港服务器上快速搭建免备案网站?  定制建站是什么?如何实现个性化需求?  已有域名和空间如何搭建网站?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  建站主机选购指南:核心配置与性价比推荐解析  如何通过VPS搭建网站快速盈利?  javascript中对象的定义、使用以及对象和原型链操作小结  ,sp开头的版面叫什么?  如何用PHP工具快速搭建高效网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何在万网开始建站?分步指南解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。