全网整合营销服务商

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

免费咨询热线: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 


相关文章: 广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  红河网站制作公司,红河事业单位身份证如何上传?  建站之星后台密码遗忘如何找回?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  建站VPS选购需注意哪些关键参数?  移民网站制作流程,怎么看加拿大移民官网?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  购物网站制作公司有哪些,哪个购物网站比较好?  如何用PHP快速搭建高效网站?分步指南  制作公司内部网站有哪些,内网如何建网站?  已有域名和空间如何搭建网站?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  已有域名能否直接搭建网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站主机CVM配置优化、SEO策略与性能提升指南  如何使用Golang table-driven基准测试_多组数据测量函数效率  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何在IIS中新建站点并配置端口与IP地址?  ,如何利用word制作宣传手册?  如何快速搭建FTP站点实现文件共享?  如何确保西部建站助手FTP传输的安全性?  网站企业制作流程,用什么语言做企业网站比较好?  建站之星各版本价格是多少?  如何在云指建站中生成FTP站点?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  怎么将XML数据可视化 D3.js加载XML  建站之星后台密码遗忘或太弱?如何重置与强化?  简历在线制作网站免费版,如何创建个人简历?  已有域名如何免费搭建网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何快速搭建自助建站会员专属系统?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何在橙子建站上传落地页?操作指南详解  如何选择域名并搭建高效网站?  建站之星多图banner生成与模板自定义指南  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何在IIS中新建站点并配置端口与物理路径?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  建站之星备案流程有哪些注意事项?  C#怎么创建控制台应用 C# Console App项目创建方法  黑客如何通过漏洞一步步攻陷网站服务器?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢? 

您的项目需求

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