记一次支付宝生活号接口使用的坑
博主今天在开发生活号相关功能时,遇到的一个坑,特意在此跟大家分享
博主昨天接到一个任务,开发生活号相关的功能,由于是第一次使用支付宝生活号接口,难免有些生疏,下载了支付宝SDK,经过一番研究跟爬坑,终于是弄通了,所以在这里特意跟大家分享。
第一个坑:加密跟解密方法名字
博主在封装好方法后,调用方法立马报错,错误如下:
Cannot redeclare Decrypt()
解决方法如下:
修改alipaySDK中定义的函数名称、修改引用的函数名称。
在官方给的SDK中,一共有需要修改三个文件中的内容:
aop/AopEncrypt.php
aop/AopClient.php
lotusphp_runtime/Cookie/Cookie.php
在文件中查找encrypt/decrypt替换为alipayEncrypt/alipayDecrypt即可。
这样我们便将这个问题成功解决。
第二个坑:文件编码:[UTF-8] 与表单提交编码:[GBK]两者不一致!
修改前代码:
$aop = new AopClient (); $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = $appid; $aop->rsaPrivateKey = $rsa_private_key; $aop->alipayrsaPublicKey = $rsa_public_key; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset = 'GBK'; $aop->format = 'json'; $request = new AlipayOpenPublicInfoQueryRequest (); $result = $aop->execute($request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code;
将$aop->postCharset = 'GBK'; 修改成 $aop->postCharset = 'UTF-8';即可
第三个坑:公钥
上面方法中的公钥是我们在开发者中心配置公钥后获得的回调公钥,不是我们配置的公钥,这里的公钥获取是先配置完公钥后,后侧会出现查看公钥按钮,点击并复制进去。
以上三个坑,都是博主今天开发中所经历的,特此跟大家分享,避免大家入坑。
0条评论