网站接入支付宝

        网站接入支付宝各种问题,调试的时候都快崩溃了,幸好现在解决了,一块大石头终于落地了。

        因为是网站支付这块开始的时候是别人在做,而且代码跟demo有一定的出入,中途接手后各种不懂,各种百度还找不到点子上。遇到的问题主要有:

1.notifyURL验签不通过

2.returnurl页面session失效


        先说第一个问题,验签不通过,其实就是验签函数的 参数 “支付宝公钥”没填对,很小的一个人问题,困扰了我好久好久。那个验签函数上的参数是publickey,我一直以为是商户公钥,所以绞尽脑汁,找各种途径,浪费了大把青春在这个问题上。支付宝的demo开发文档其实都挺详细的,开发前一定要仔细阅读一遍。

        第二个问题,notifyURL是异步通知,session和cookie不能使用这很正常,但returnurl是同步跳转,session不能用就很费解了,百度这个问题还真有解答的,说跳转到支付宝后session更新了,需要先把客户端cookie中的sessionid当做私有参数传到支付宝接口,跳转回来时再通过sessionid值匹配原来的session。  貌似说的很有道理,但怎么操作啊,怎么才能把sessionid传回returnurl?   所以我直接找了支付宝技术人员,可能他们没遇到过这种问题吧,说session失效需要重新登录。 wtf?这还用说吗,就是不想重新登录才找你的...    总之这个问题又困扰了一段时间。后来 灵感突发,我发想问题了:我登录网站的时候用的是ip地址登录的,但returnurl是域名,会不会当做不同的网站了,所以session找不到。然后就用域名登录了一下,购买,支付,跳转。成功了!!!


        之前网站支付成功写入数据库的逻辑都是在returnurl中的,的确在这里操作很方便,因为能用session,但是逻辑有问题,因为用户支付完成后很有可能直接退出,就是不跳转到该页面,那就会出现用户花钱了,但却没购买成功(数据库没更新)。所以后来把数据库更新都放到了notifyURL(异步回调就是做这个的)中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值