您的位置:首页 > 移动开发 > 微信开发

微信支付测试OK。

2015-12-21 15:50 691 查看
前期准备:

商户登陆后:安装证书,设置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())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: