解决THINKPHP 支付宝接口异步notify 无效可能的问题。
解决THINKPHP 支付宝接口异步notify 无效可能的问题。
曹梦龙 发表于3年前
解决THINKPHP 支付宝接口异步notify 无效可能的问题。
  • 发表于 3年前
  • 阅读 303
  • 收藏 0
  • 点赞 0
  • 评论 1

华为云·免费上云实践>>>   

摘要: 在ADMEXPRESS开发过程中,遇到了支付宝支付成功后 notify 怎么也调用不成功,让我费了点时间。最终问题解决。 把关键点记录下来,有可能会对别人有帮助~

支付成功后,发现alipayReturn 正常~

AlipayNotify 怎么搞都不正常,好像支付宝就是不能POST过来。

经过多次测试和调试,终于发现几个问题。

1.首先支付宝Notify 调用的这个控制器Controller,不能有访问权限的问题。

我把它继承了HomeController控制器,这个控制器必须登录后才能访问,所以肯定是不行的。

2.支付宝Notify URL地址中不能有?XX=XXX 不能有传参的写法。

权限问题发现并解决后,发现支付宝不回调我的Notify Url 我写成其他的地址就可以。很是纳闷,然后找问题看支付宝官方代码,发现一行注释    

$notify_url = U('Home/Alipay/alipayNotify', '', true, true);
//需http://格式的完整路径,不能加?id=123这类自定义参数

这时发现 我的U方法生成的URL地址中 是有?的。原来问题在这里。

http://v1.admexpress.cn/index.php?s=/Home/Alipay/alipayNotify

只要把THINKPHP 的URL模式改成 PATCHINFO模式即可!

修改Application/Common/Conf/config.php 公用配置文件中的URL模式即可。

   'URL_MODEL'            => 1, //URL模式
   //原来默认是3 兼容模式会产生?
   //改成1,PATCHINFO模式即可!


共有 人打赏支持
粉丝 15
博文 27
码字总数 12015
评论 (1)
曹梦龙
如何让centos 下的nginx支持 phpinfo 请阅读
http://my.oschina.net/caomenglong/blog/660529
×
曹梦龙
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: