php+notify_url,fastadmin对接支付宝支付,遇到的问题之一二

一开始也没做过支付宝支付相关的东西

本来用的fastadmin的epay插件来配置支付宝的,本来以为会so easy,但是实际上还是遇到了一些问题,花了几天时间,把沙箱环境配置起来了...

算是一个良好的开端

第一步骤:生成公钥和秘钥

作用是:生成你的应用公钥和私人秘钥,然后配置到沙箱环境中后,生成后,你可以在你的秘钥文件路径中查看

7e63fc49cab0ba94a6bcd834b52dc8f3.png

第二步骤,进行沙箱环境配置

公钥的配置,进行填写或者替换

3ba0d394d5256720a3ce1ccbf97c1c8b.png

c55fa6bc2a44f0cbae1c8007bc01e7d1.png

第三步:下载一个demo,进行本地参数配置测试

我这里下面的是fastadmin里面的addons/epay里面的config文件配置,大体的参数差不太多

7d0ddec522a57070332913e5aa649cf5.png

fastadmin的这个文件里面,你要把你的应用网关,设置为dev,开发沙箱模式,,不然你的模式是正式模式,就会报错:appid错误.这一类的错误

e02243e2dffdce1e5100c418a960846e.png

4.然后测试,就完事儿了

这是阿里的demo

89e52334429c3baafab28ee5887a74db.png

01684e483c00b83d19e3474a5265aa21.png

5.把这些参数配置,同理,改到fastadmin中的epay的config.php中去,

这里config.php没有配置网关,需要到:项目\addons\epay\library\Yansongda\Pay\Gateways\Alipay\Alipay.php中,去改开发网关

如何分辨和理解notify_url和return_url

return_url:在你进入支付界面后,输入账号密码支付完成后,会跳入你的return_url,所以这里可以做成你的本地url,比如xxx.com/addons/epay/index/notifyx

这里会带有一些out_trade_no(你的网站生成的单号),来直接给你,然后你就可以在returnx()方法里面把out_trade_no获取到,然后进行判断,判断支付成功..

fdd19e0b31fde3a41dad8783b9fc1592.png

notify_url:回调url,这里是支付宝post参数的url,支付宝支付成功后,支付宝方会post一些数据到这个url,所以这个url不能是本地的域名了..他就要弄个公网能够访问的url,你在线上调,才可以获取到参数...因为支付宝无法也不可能把参数传到你的本地局域网网络上..在fastadmin中,你可以用tp5的方法input('params.')获取所有的参数,类似下面这张

b41dd960b14709df9133e43add42a658.png

909a269bd33eea83ff47c11ae4487275.png

下面是notify获取到的所有值..

{"gmt_create":"2020-04-14 00:37:30","charset":"UTF-8","gmt_payment":"2020-04-14 00:37:39","notify_time":"2020-04-14 00:40:20","subject":"\u5546\u54c1:netflex-30\u5929\u8ba2\u5355_32","sign":"f44+wVQF9q3qNxYKWPcBAGbbIh1Zf6yXdU8Uw2hFyk5MerDzrmd+hNDqfuJP65KJ8aU2nwXNa5F1F7gYsRyhkxpBc7uqb31MpE81EHXd2Efxmg11k8DOjzpWLc8sg4PTQpI2igaTt0neffwpt6GnaWQin+aHGtpbRFBM4tbhfFzZU+2lBgYPBIrnWiAWmKNsOo9Qg74oiG9Gbe7sn6qfOEoNGyqZ+\/usMTLmrF43HYdL4qxRxySaMrWEyBVC2Xo3NWmOajNwTcvqvZ3d8v\/eRS0mFQiKuSZncl6aclbqIqr5kgpy9gh4hT25jTRPIMZfvLSWdqx1o5ovQMNYZOvdUA==","buyer_id":"2088102180484198","invoice_amount":"0.01","version":"1.0","notify_id":"725d69fefce80d8cd0fee646031b83ehgx","fund_bill_list":"[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]","notify_type":"trade_status_sync","out_trade_no":"32","total_amount":"0.01","trade_status":"TRADE_SUCCESS","trade_no":"2020041422001484190500343722","auth_app_id":"2016102300742405","receipt_amount":"0.01","point_amount":"0.00","app_id":"2016102300742405","buyer_pay_amount":"0.01","sign_type":"RSA2","seller_id":"2088102180715980","addon":"epay","controller":"index","action":"notifyx","paytype":"alipay"}

支付成功后,但是回调地址验证签名错误,怎么办?

多半是你本地配置的支付宝公钥填写错了,填写成了应用公钥...

发现配置的回调地址,不是你的回调地址怎么办?

真正的回调地址,可以通过config配置,也可以通过experience()方法里面拼接..在实际开发中,notify_url和return_url不一定是配置里面的,可以在方法里面进行拼接调用

e6a829b86e227cfeee9688b5eee0483d.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值