由于是新版本微信支付 记录一下
首先下载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;
终于完工了 给自己点个赞
特殊说明,本文版权归 ning个人博客 所有带原创标签请勿转载,转载请注明出处.
本文标题: thinkphp3.2整合微信支付v3版本