各种槽点。没法 composer ,没有命名空间,引用 lotusphp_runtime...
微信支付都有了 wxpay/WXPay-SDK-PHP (话说这个是官方的吧?)wxpay
求问大牛们:你们在一些使用命名空间的框架里是怎么优雅的使用官方的 alipay-sdk-PHP 的?
PS :虽然也有这种第三方修改过的版本 fishlab/alipay-sdk-php ,但不是官方的总不是很放心(不是针对该作者的意思,作者辛苦了),另外官方更新的话也不一定能及时更新。
蚂蚁金服是不是很少 php 程序猿了 0 0
1
peesefoo 2017-03-18 16:14:39 +08:00 via Android
官方的 sdk 都是零几年写的吧
|
2
littleylv OP @peesefoo 最早应该是零几年,不过现在也还在维护(因为最新下载的文件名是 alipay-sdk-PHP-20170307171629.zip )
时代都在进步了,为何他们不打算重构,这么一个大公司的 sdk 搞的辣么... 隔壁 wxpay 都拥抱 github 了。 |
3
49gd 2017-03-18 16:36:59 +08:00
我用的 lokielse/omnipay-alipay 简单又好用
|
4
hoythan 2017-03-18 16:46:56 +08:00
并不觉得不好.
|
5
ijustdo 2017-03-18 16:48:15 +08:00
我们这边弄过蚂蚁金服的 呵呵 当时也是恶心的不行呢 后来干脆不用它 sdk 自己动手丰衣足食
|
6
lyragosa 2017-03-18 16:53:42 +08:00
我用着倒是没啥问题……可能是因为我没用 composer 的缘由
|
7
littleylv OP @lyragosa 问题倒是不会有啥问题,就是感觉太落伍了,而且编程规范乱七八糟,另外加载了另一个框架 lotusphp 大丈夫?
|
8
azuis 2017-03-18 17:06:10 +08:00 via iPhone
这个其实不算是 sdk 啦,就是个 example code …各大框架有第三方开发者写的库可以用。
|
9
kumakiti 2017-03-18 19:10:17 +08:00
我记得当时是用 composer 的 autoload 来弄个命名空间用的,现在根本不记得怎么用了,那时候还是照着别人的写法参考来的,有空得补补,这些知识不能丢啊
|
10
leavic 2017-03-18 19:12:13 +08:00
你知道 python 连 SDK 都没有吗。。。。
连验签都要自己做,还得抓包,用官方的 java 工具验签都报失败,我硬是自己给调过了。。。 |
12
Lucups 2017-03-18 22:16:09 +08:00
难道是因为阿里没有 PHP 程序员的原因?
|
13
kankana 2017-03-18 22:20:08 +08:00
接触的几个阿里云 sdk 好像也是不支持 composer.
|
14
HanSonJ 2017-03-18 22:49:59 +08:00
不要依赖官方 SDK ,接触过很多 SDK ,官方的都不叫 SDK ,那叫 DEMO ,给你示范一下怎么用,能跑通,就扔给你了,去 github 搜索,如果没有可以考虑自己写个 SDK 了
|
17
zqcolor 2017-03-19 00:13:14 +08:00
我用的这个+ yii2 框架, github 上的, 其他框架也应该类似
https://github.com/fangj99/yii2-starker-kit-alipay |
18
zjsxwc 2017-03-19 07:29:25 +08:00 via Android
阿里的 php sdk 感觉质量都很差,没有 namespace ,命名不规范,不能 compser ,大部分依赖 lotus 这个早就不维护了的东西
|
19
JulyXing 2017-03-19 10:44:06 +08:00
支付宝和微信基本上都是给一个 demo ,后面还是需要自己配合自己现有的框架重构。
|
20
haiyang416 2017-03-19 10:51:18 +08:00 via Android
其实就是一堆 class 文件,自带的框架直接扔了,不用 composer 的话自己 require 就行。
|
21
lsido 2017-03-19 10:54:20 +08:00 via Android
阿里的 sdk 就这样
|
22
hiboshi 2017-03-19 14:27:46 +08:00
为什么一定要 composer ?为什么一定要命名空间?
不瞒你说我们公司还是 php5.2 每次看到命名空间就头疼没法使用它们的 sdk ,只能找对方要 5.2 的。 |
25
littleylv OP |
26
former 2017-03-20 09:36:46 +08:00
上周也被这个 SDK 折腾了,可以不用管 lotusphp 框架, lotusphp 框架主要就是自动加载类的作用,直接找 aop/request 里面的类文件,大约 500 多个,看你需求,如果单是支付查询退款操作,用到的也不多,参考文档集成到项目里面就好了。但是这样不利于日后更新维护,看你取舍了。
|
27
littleylv OP @former 我打算不改动原有 SDK ,把包放到 vendors/alipay/alipay-sdk-php ,再用 composer.json 里的 classmap 属性
后面应该可以直接 use 命名空间?(还没实践过,按手册说的应该是可以) |
28
Light3 2017-03-20 15:16:45 +08:00
想起了那个自动加载类和某文件冲突..然后我有次不知道什么鬼 demo 都跑不过..最后没办法求救那个客服 客服说我密钥生成错了..折腾一下午..
|
29
littleylv OP 经实践,最终我的做法是:
1 、在 vendors 下新建 alipay 2 、把 SDK 里的 aop 目录拷到 alipay 下(抛弃原来 SDK 目录下的 lotusphp_runtime 和 AopSdk.php ) 3 、最终目录结构是 vendors/alipay/aop 4 、 composer.json 的 autoload 节点里加入: ``` "classmap": [ "vendor/alipay/aop" ] ``` 5 、运行``composer dump-autoload`` 6 、这样在项目里可以不用 require ,直接: ``` // 仅测试能使用命名空间,忽略参数设置吧。。。 $a = new \AopClient(); $b = new \AlipayAppTokenGetRequest(); $c = $a->execute($b); ``` |
31
bunny183 2017-03-20 21:12:56 +08:00
其实它只是给你一个示例代码而已。
|