微信里吊起微信支付php

// 微信内置浏览器支付注意细节:
用类型为JSAPI的方式用微信的
统一下单接口( $url = "https://api.mch.weixin.qq.com/pay/unifiedorder";)
返回数据
二位数组
有 
appid
prepay_id
还有签名什么的(注意这个签名不是我们后来钓起公众号支付的那个签名配置,我曾在此陷入1天)
等, 我们要用这两个参数进行获得签名
例如我的代码:
// 先获得随机串。这个随机串并不是JSAPI的方式返回的随机串注意,下面是我的代码


// 签名设置中随机字符串
function nonceStr(){
$chars = "abcdefghijklmnopqrstuvwxyz0123456789";  
$str ="";
$length = 32;
for ( $i = 0; $i < $length; $i++ )  {  
$str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);  

//随机字符串
return $str;
}


$timeStamp = time();
// 进行生成随机字符串
$nonceStr = nonceStr();
// key值,商户申请的时候约定的key值
$useKey = "xxxxxxxxx";// 这个是支付申请时设置的密码
//这里面只要prepayid和appId是同一下单接口返回的数据
$arrayName = array('appId'=>$appid,'timeStamp'=>$timeStamp,'nonceStr'=>$nonceStr,'package'=>$prepayid,'signType'=>"MD5");
ksort($arrayName);
$string1 = '';
foreach ($arrayName as $key => $value) {
$string1.='&'.$key.'='.$value;
}
$string1 = ltrim($string1,'&');
$string = $string1 . "&key=".$useKey;
$string = md5($string);
$sign = strtoupper($string);//MD5签名处理
------------------------
上面就是把所有的配置数据准备完毕了,微信中有2种微信内置浏览器的支付方式
第一种:使用chooseWxpay,这种方法比较老,而且还需要配置微信的jsdk很不能方便,我们直接讲第二种:不需要配置jsdk
第二种:getBrandWCPayRequest方式进行微信支付方式
//只要把下面的配置,放进去即可使用
function onBridgeReady(){
  WeixinJSBridge.invoke(
       'getBrandWCPayRequest', {
           "appId" :"<?php echo $appid;?>",     //公众号名称,由商户传入     
           "timeStamp":"<?php echo $timeStamp;?>",         //时间戳,自1970年以来的秒数     
           "nonceStr" :"<?php echo $nonceStr;?>" , //随机串     
           "package" : "<?php echo $prepayid;?>",     
           "signType" : "MD5",         //微信签名方式:     
           "paySign" : "<?php echo $sign;?>" //微信签名 
      },

      function(res){   

//出问题调试     //alert(res.err_desc);

      //  表明是支付成功的时候的操作处理
           if(res.err_msg == "get_brand_wcpay_request:ok" ){
            // 直接进行ajax操作处理把加密的订单号传过去
            // 1更改后台状态2,提示更改成功3.进行跳转处理
sd(<?php echo $dataNameId;?>,"<?php echo $order_sn;?>");    
               //orderSn
           }     // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
      }); 
}
if (typeof WeixinJSBridge == "undefined"){
  if( document.addEventListener ){
       document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
  }else if (document.attachEvent){
       document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
       document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
  }
}else{
  onBridgeReady();
}

里面的一些问题截图和解释:


1.后台配置很重要23级目录注意

2.web开发者工具不支持支付测试(直接用手机即可)

3.老版本的支付方式

4.新版不需要jsdk的大致代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gjanuary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值