上个星期公司要求使用支付宝即时到帐的接口来实现账号的充值功能,这东西太折腾人了,一开始做的还是挺顺利的,下单,付款这些懂没问题了,结果在接收付款完成后支付宝异步返回的数据时出问题了,打死都接收不到数据,在折腾了好久后才发现问题,应为是整合到thinkphp中,我是用的tp的I方法获取数据I(‘post.XX‘)这样,在改成$_POST[‘XX‘]后就ok了,然后写业务逻辑,ok,成功更新数据库。
本来以为这就结束了,放到服务器上去测试,在我的电脑上测试ok,但是在同事的电脑上就报错了,根据官方文档的说法是签名错误,我就去查alipay.config.php这个文件,配置没有问题,折腾好几个小时一直报错,无奈去问度娘,有网友说是字符编码的问题,应为在提交付款的时候是有一个中间页的,就是alipayapi.php这个文件(我整合到controller中了),我加上了
header("Content-type: text/html; charset=utf-8"); 然而并没有什么卵用,然后我想到我为了写入数据库在转眺到支付页面前其实还有一个页面的于是我在里面也加上
header("Content-type: text/html; charset=utf-8");
ok,没问题了,总而言之:在做支付宝的支付接口时要注意 使用$_GET,$_POST来获取数据,在提交的中间页中保证字符编码不出问题基本上就没有什么问题了.
时间: 2024-10-17 18:22:52