今天在易宝支付问题上给纠结了半天,将模块加进文件中,设置好商户ID与密钥,加上对应的域名,是可以实现在线支付问题。但我现在要的功能是要按不同的分组,去读取不同的商户ID与密钥,因些,我将这些存到数据库中去。
在reg.php页面中就开始从数据中读取相应会员组的商户编号与密钥。读取出来的值再传送给merchantProperties.php,采用session方式传送。奇怪的问题出现了,出现了莫名的错误“交易签名无效”,打印了一下编号与密钥,发现没有错呀。于是找了客服问了,说是编码的问题,易宝只支付GBK编码。马上检查了下,发现编码还真有问题,因为我存数据库的编码是utf-8,于是用iconv进行编码转换了下,没想到还是发生同样的错误。调试打印出来的数据明明正确,为什么还是这样的呢?
引结了老半天,死马当活马医吧,把从数据库中读取商户编码与密钥的代码放到merchantProperties.php里,直接在这里读取并赋值,奇迹出现了,竟然可以了,虽然可以,但还不知道为什么?跟数据存在session里有关吗?还是。。。。先在此做下记录吧,有知道的请给个评语,不甚感激
原理及解决方案: