20 01 2018

由于是新版本微信支付 记录一下

首先下载php demo  一定要读doc文档 少好多麻烦

 配置好秘钥等   在控制器加载文件


vendor('WxpayAPI.lib.WxPay#Api'); 文件名 .替换成 #
 vendor('WxpayAPI.WxPay#JsApiPay');  
  //①、获取用户openid  $tools = new \JsApiPay(); 
 $openId = 'XXXXXXXXXXXXXXX';  
//②、统一下单  $input = new \WxPayUnifiedOrder(); 
 $input->SetBody("test");  
 $input->SetAttach("test");  
 $WxPayConfig = new \WxPayConfig(); 
 $input->SetOut_trade_no($WxPayConfig::MCHID.date("YmdHis"));
 $input->SetTotal_fee("1");  $input->SetTime_start(date("YmdHis"));  
 $input->SetTime_expire(date("YmdHis", time() + 600)); 
 $input->SetGoods_tag("test");  
 $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php"); 
 $input->SetTrade_type("JSAPI");  
 $input->SetOpenid($openId); 
 $WxPay = new \WxPayApi(); 
 $order = $WxPay::unifiedOrder($input); 
 //echo '<font color="#f00"><b>统一下单支付单信息</b></font><br/>'; 
 //printf_info($order); 
 $jsApiParameters = $tools->GetJsApiParameters($order); 
 //var_dump($jsApiParameters);exit;  
return $jsApiParameters;


比以前v2版本简单了好多  尤其是加载第三方库  费了点劲

demo放到vendor下面


如果支付授权目录没有设置正确,在请求JSAPI时,会提示“3当前页面的url未注册”的错误。

 

怎么设置呢,首先要看你支付的当前页面URL,比如是:

http://www.xxx.com/wxpay/js_api_call.php

你就必须填写:

http://www.xxx.com/wxpay/

假如是:

http://www.xxx.com/wxpay/order/id/56.html

你就必须写:

      http://www.xxx.com/wxpay/order/id/

假如是:

http://www.xxx.com/wxpay/order?id=56

你就必须写:

      http://www.xxx.com/wxpay/order/

 

看出规律了吧,就是把最后一个反斜杠后面的内容去掉就OK了



页面调用  ajax   controller 一定要echo  输出  不要$this->ajaxReturn 

不然放到页面的js中会显示缺少jsapi参数  appid



 $jsApiParameters = $this->wxpay($title,$money);  
echo $jsApiParameters;
终于完工了  给自己点个赞


发表评论