- PC端打开时网页版本呢,不是手机版本呢
[图片]
08-17 - 服务端api签名指南,PHP版本有人成功过的吗?
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/api_signature.html 我这里加密后,解密有时候成功,有时候返回false,有人知道怎么回事,问微信官方,官方也是一问三不知,搞了快一周还没解决这个问题。
2023-08-28 - 服务端api签名指南,PHP版本有人成功过的吗?
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/api_signature.htmlhttps://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/api_signature.htmlhttps://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/api_signature.html 我这里加密后,解密有时候成功,有时候返回false,有人知道怎么回事,问微信官方,官方也是一问三不知,搞了快一周还没解决这个问题。 //服务端api加密 public static function getRequestParam($url, $req) { $key = base64_decode(self::apiAES256['key']); $sn = self::apiAES256['sn']; $appId = self::miniAppID; $time = time(); //16位随机字符 $nonce = rtrim(base64_encode(random_bytes(16)), '='); $nonce = base64_encode(random_bytes(16)); $addReq = ["_n" => $nonce, "_appid" => $appId, "_timestamp" => $time]; $realReq = array_merge($addReq, $req); ksort($realReq); $realReq = json_encode($realReq); //额外参数 $aad = $url . "|" . $appId . "|" . $time . "|" . $sn; //12位随机字符 $iv = random_bytes(12); //var_dump($iv); $cipher = openssl_encrypt($realReq, "aes-256-gcm", $key, 1, $iv, $tag, $aad); echo '<br>---------encrypt paras start-------------<br>'; echo '<pre>'; echo '$realReq:'; var_dump($realReq); echo '$key:'; var_dump($key); echo '$iv:'; var_dump(base64_encode($iv)); echo '$tag:'; var_dump(base64_encode($tag)); echo '$aad:'; var_dump($aad); echo '<br>--------- encrypt paras end-------------<br>'; $iv = base64_encode($iv); $data = base64_encode($cipher); $authTag = base64_encode($tag); $reqData = ["iv" => $iv, "data" => $data, "authtag" => $authTag]; //校验本地加密是否正确 非必须 //$checkParam = self::checkParam($key, $authTag, $iv, $data, $aad); return ['ts' => $time, 'reqData' => json_encode($reqData)]; } //服务端api签名,$newRe参数是经过服务端api加密后的请求参数 public static function sign(array $newRe, $url_path) { $time = $newRe['ts']; $key = self::apiRSA256['private_key']; $url = $url_path; $appId = self::miniAppID; $reqData = $newRe['reqData']; $payload = "$url\n$appId\n$time\n$reqData"; $rsa = new RSA(); $rsa->loadKey($key); $rsa->setHash("sha256"); $rsa->setMGFHash("sha256"); $signature = $rsa->sign($payload); return base64_encode($signature); } //服务端验对api返回的加密的结果进行解密,得到真实返回 public static function jM($ts, $body, $url_path) { echo '<br>---------decrypt paras start-------------<br>'; echo '<pre>'; echo '$ts:'; var_dump($ts); echo '$body:'; var_dump($body); echo '$url_path:'; var_dump($url_path); echo '<br>--------- decrypt paras end-------------<br>'; $url = $url_path; $appId = self::miniAppID;; $sn = self::apiAES256['sn']; $aad = $url . '|' . $appId . '|' . $ts . '|' . $sn; $key = self::apiAES256['key']; $key = base64_decode($key); $iv = base64_decode($body['iv']); $data = $body['data']; // if (strlen($data) % 16) { // $data = str_pad($data,strlen($data) + 16 - strlen($data) % 16, "\0"); // } $data = base64_decode($data); $tag = base64_decode($body['authtag']); //print_r($tag); //print_r($data); $result = openssl_decrypt($data, "aes-256-gcm", $key, 1, $iv, $tag, $aad); var_dump( openssl_error_string()); var_dump($result); if (!$result) { print_r(openssl_error_string()); while ($msg = openssl_error_string()) { echo "<br>ERROR: " . $msg; } } //$result = \Qiniu\json_decode($result,true); return $result; }
2023-08-24 - 创建订单返回的结果为什么都是false?查询订单是有的这个订单,订单状态为10000.
https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/intracity_service.html 同样的参数多次创建订单,会返回订单号重复的提示。查询订单是有的,订单状态为10000。为什么不是接口文档里面的返回的是下单信息? [图片] [图片]
2023-08-21 - 沙盒测试需要专门的账号吗?
https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/intracity_service.html 接口地址:https://api.weixin.qq.com/cgi-bin/express/intracity/addorder?access_token={ACCESS_TOKEN} 调完接口,接口反馈各种错误,查看rid也看不出个什么名堂,并且不知道是不是账号是沙盒的原因,返回一会有数据,一会儿false [图片] [图片]
2023-08-20 - 用户超出配送范围,同城配送接口创建订单的错误?在哪里可以修改这个范围
"{"errcode":934005,"errmsg":"preadd order fail detail: [DADA Errmsg: |SFTC Errmsg: 用户超出配送范围] rid: 64e1a181-2b6ab4cf-6f0afcfc" 在哪里可以修改这个范围??
2023-08-20 - 能不能把物流快递的接口getOrder返回值里面把电子面单的值加进去?
https://api.weixin.qq.com/cgi-bin/express/business/order/get?access_token=ACCESS_TOKENz 这个接口看不到电子面单的效果,沙盒模式能不能加个电子面单的返回值print_html [图片]
2023-08-18 - 为啥这个接口需要加密,而快递和配送接口不用加密??
https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/intracity_service.html 请给一个PHP版本加密api接口都版本
2023-08-18 - 如果PHP做不了服务端api的加密和签名,请直接在文档首页标注,不要浪费我们太多的精力在无关的验证?
今天问了一个超级大神,终于给我大概说明白了原因,虽然还是懵懵懂懂,但是还是很感谢他,不然一直还要在这个深坑里面游泳。并不是每个程序员都是搞研究的,我们只是拿示例来调用接口,我们主要精力是在业务逻辑上,而不是整天在微信的配置,验证签名的功夫上,经过这件事我很气愤,但是不想骂人,做人要讲良心,收钱的时候没见过腾讯手软过。 [图片] [图片]
2023-08-16 - 谁有服务端的api加密和签名示例,php版本的?·
自己根据文档写的加密和签名,出来始终是签名不通过。谁有通过了的PHP版本的,只要能用发红包可以,喊爸爸也行,给你烧香供起来也可以,太折磨人了。
2023-08-16