微信支付测试OK。

前期准备:

商户登陆后:安装证书,设置API密钥

下载密钥,准备好各种APPID,KEY,替换到WxPay.Config.php


公众平台:微信支付-

测试授权目录:http://www.aabb.com/mobile/payjsapitest/example/

少了example好像还不行!



 第一个问题:

redirect_url参数错误。因为我选择的的“JS API”支付,这种支付需要网页授权,先获取code,再拿code去获取openid和prepay_id。这个网页授权需要登录微信公众平台,点击左侧菜单“开发者中心”,在右侧“权限列表”中找到“网页账号”,点击最右侧的修改,把测试的网址写进去,注意不要加http。填好后,这个坑就趟过去了。


路径:登陆公众号-开发-接口权限:

网页账号 网页授权获取用户基本信息 无上限 已获得   修改
授权回调页面域名:填写自己网站就OK。



第二个问题:

返回错误码60

这个错误通过修改文件WxPay.Api.php 解决,具体如下:

 

第537行

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验


to

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验2


本来测试的是JSAPI的,后来用户需求还是扫码支付,OK:


  $zProid =  $_POST['zProid'];
  $zbody =  $_POST['zbody'] ;// "服务费";
  $zattach = "服务费,carno:".$zProid;
  $zfee_init = $_POST['zfee'];
  $zfee = (float)$zfee_init * 100;
  $ztotal = $_POST['ztotal'];
  $ztag = "服务费,carno:".$zProid;

  $ztime = time();
  //$zday = date("y-m-d",$ztime);//2015-12-24
   $zday = date("ymdhis",$ztime);
 
$ztrade_no = 'sp'.$zday . 'no'.$zProid;
 
$input = new WxPayUnifiedOrder();
$input->SetBody($zbody);
$input->SetAttach($zattach);
$input->SetOut_trade_no($ztrade_no);  //WxPayConfig::MCHID.date("YmdHis")
//$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));  //
$input->SetTotal_fee($zfee); //支付金额
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag($ztag);
$input->SetNotify_url("http://xxxx/notify.php");
$input->SetTrade_type("NATIVE");
$input->SetProduct_id($zProid);
$result = $notify->GetPayUrl($input);
$url2 = $result["code_url"];


还有日志问题的,下次有空再优化吧:

$arr = $GOLBALS['HTTP_RAW_POST_DATA'];
$res = simplexml_Load_string($arr,'SimpleXMLElement',LIBXML_NOCDATA);
$out_trade_no = $res->out_trade_no;



DROP TABLE IF EXISTS `zwxpaylog`;
CREATE TABLE `zwxpaylog` (
  `zid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `zbody` varchar(30) NOT NULL DEFAULT '上品车到-服务费',
  `zattach` varchar(30) NOT NULL DEFAULT '上品车到-服务费',
  `ztag` varchar(30) NOT NULL DEFAULT '上品车到-服务费',
  `zproid` mediumint(8) unsigned  ,
  `shop_price` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
  `zfee` decimal(10,2) unsigned NOT NULL DEFAULT '0.00',
  `ztradeno`varchar(32) NOT NULL DEFAULT '',
  `zadd_time` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`zid`),
  KEY `ztradeno` (`ztradeno`)
) ENGINE=MyISAM AUTO_INCREMENT=47 DEFAULT CHARSET=utf8;


insert into `zwxpaylog`(zbody,zattach,ztag,zproid,shop_price,zfee,ztradeno,zadd_time) values('服务费1','服务费2','服务费3',26,23,1800,'126658240120151223164250',unix_timestamp())



你可能感兴趣的:(微信支付测试OK。)