0%

支付宝当面付PHP版Demo

最近想给一个wordpress网站增加打赏功能,希望支持支付宝和微信进行打赏。最简单粗暴的方式是直接将自己的支付宝和微信收款二维码放上去,但是这样就无法实现自动将打赏信息记录到数据库并显示到打赏页面,要想实现这一功能,可以签约支付宝当面付基础版,https://b.alipay.com/signing/productDetailV2.htm?productId=I1011000290000001003,签约当面付基础版只需上传店铺门面照片,无须上传营业执照,所以对于大部分人来说都是可以签约成功的,微信商户签约比较麻烦,所以微信打赏暂时还是把收款二维码放上去。

我的支付宝账号在今年4月份的时候已经签约成功支付宝当面付基础版了,所以今天先从支付宝开放平台下载了PHP版本的当面付Demo:https://docs.open.alipay.com/194/105201/,将Demo跑起来看看效果先,但是跑起来并不是那么顺利,同时我也不是很熟PHP,所以也折腾了半个多小时。

可能遇到的问题

PHP禁用了scandir函数

直接跑Demo的时候,如果PHP设置了display_errors=On的话,会看到类似如下的报错提示:

Warning: scandir() has been disabled for security reasons in /home/wwwroot/xxxx/xxx.php on line 764

解决办法是打开php.ini文件,去掉disable_functions中的scandir,去掉后需要重启一下PHP

ACQ.INVALID_STORE_ID商户门店编号无效

点击确认订单的时候,下一个页面提示报错ACQ.INVALID_STORE_ID商户门店编号无效,生成二维码失败,解决办法是将Demo中门店编号相关的字段传递空字符串进去,也就是将下面几行代码修改一下,分别给它们赋值为空:

修改后的效果如下:

然后就可以测试Demo了:

设置一下订单号、订单名称、付款金额信息,然后点击确认,就可以生成二维码了: