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

原创
2020/04/06 22:52
阅读数 8K

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

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

算是一个良好的开端

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

首先:你要下一个支付宝开放平台开发助手, https://opensupport.alipay.com/support/helpcenter/207/201602469554

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

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

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

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

https://opendocs.alipay.com/open/270/106291/

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

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

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

这是阿里的demo

这是fastadmin的测试url:http://xxx.com/addons/epay/index/index

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获取到,然后进行判断,判断支付成功..

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

下面是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不一定是配置里面的,可以在方法里面进行拼接调用

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部