最近在给公司官网做一个支付宝充值的功能,在过程中遇到了一些问题,并解决了,现在把一些心得分享一下。
1, 首先要有一个公司的支付宝账号,进入到支付宝的商家服务,申请即时到帐收款套餐。(5个工作日之内可以申请好)
2, 申请好了,下载即时到帐收款的开发包。里面有开发文档,及示例代码。(我是用php开发的)
3, 譬如说用户充值有充值账户,金额,虚拟货币数量,需要将这些信息post到alipayapi.php,然后开始构造向支付宝请求的各种参数,参数很多,我这里重点说几个。
(1) 参数out_trade_no
这个参数是商户订单号,是需要向我们自己的服务器产生的一个订单号,用于验证充值的。
(2) return_url
这个参数是当用户输入密码,扣钱成功后,回调的一个页面
(3) notify_url
这个参数是服务器异步通知的页面
在这个页面中可以处理自己的业务逻辑,譬如更新订单状态,给用户账户充值等。
在做的过程中遇到的几个问题
(1) 如果即时到帐的的产品没有申请成功,用开发包是会报错误的。
(2) 在alipay_config.php中,的$alipay_config[‘partner’]和$alipay_config[‘key’]在支付宝的商家服务中可以查询到。
(3) 在用户扣钱成功后,return_url.php和notify_url.php页面都是可以访问到的,可是验证通不过,也就是
(notify_url.php中)
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();
(return_url.php中)
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyReturn();
最后的$verify_result没有返回值,也就是在执行verifyReturn和verifyNotify时失败了。
于是一直打日志(打日志函数是logResult,日志保存在log.txt中),到最后发现是自己的放php服务器的linux服务器,没有支持curl,
于是
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
然后在重启apache服务就可以了。
sudo /etc/init.d/apache2 restart(我的服务器版本是ubuntu,不同的服务器安装curl和重启apache服务的命令不同)
希望我的分享能够帮助到大家