记一次支付宝生活号接口使用的坑

博主今天在开发生活号相关功能时,遇到的一个坑,特意在此跟大家分享

      博主昨天接到一个任务,开发生活号相关的功能,由于是第一次使用支付宝生活号接口,难免有些生疏,下载了支付宝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条评论

发表评论