PHP 微信 消费者投诉 下载图片 api接口 您所在的位置:网站首页 微信举报方法大全图片 PHP 微信 消费者投诉 下载图片 api接口

PHP 微信 消费者投诉 下载图片 api接口

2024-07-12 21:07| 来源: 网络整理| 查看: 265

 下载官方SDK

        使用 PHP 包管理工具 Composer 安装 SDK:

        composer require wechatpay/wechatpay

https://github.com/wechatpay-apiv3/wechatpay-phphttps://github.com/wechatpay-apiv3/wechatpay-php

下载IDE 描述包

为 wechatpay-php 增加IDE提示的接口描述包 iwechatpay/openapi 介绍 | 微信开放社区wechapay-php 开发包的辅助包 iwechatpay/openapi 介绍https://developers.weixin.qq.com/community/develop/article/doc/000a0ce867842092f8cc65e5356013

开始使用

        实例化 配置好参数

require_once('vendor/autoload.php'); use WeChatPay\Builder; use WeChatPay\Crypto\Rsa; use WeChatPay\Util\PemUtil; // 设置参数 // 商户号 $merchantId = '190000****'; // 从本地文件中加载「商户API私钥」,「商户API私钥」会用来生成请求的签名 $merchantPrivateKeyFilePath = 'file:///path/to/merchant/apiclient_key.pem'; $merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE); // 「商户API证书」的「证书序列号」 $merchantCertificateSerial = '3775B6A45ACD588826D15E583A95F5DD********'; // 从本地文件中加载「微信支付平台证书」,用来验证微信支付应答的签名 $platformCertificateFilePath = 'file:///path/to/wechatpay/cert.pem'; $platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC); // 从「微信支付平台证书」中获取「证书序列号」 $platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath); // 构造一个 APIv3 客户端实例 $instance = Builder::factory([ 'mchid' => $merchantId, 'serial' => $merchantCertificateSerial, 'privateKey' => $merchantPrivateKeyInstance, 'certs' => [ $platformCertificateSerial => $platformPublicKeyInstance, ], ]);

平台证书下载

        微信支付SDK 中 PHP Certificate Downloader 微信支付 APIv3 平台证书的命令行下载工具 使用教程_fuchto的博客-CSDN博客使用环境在linux 环境中使用使用前准备商户号、商户证书序列号、商户私匙文件(pem格式)、ApiV3密钥安装好 微信支付SDK 使用composer安装composer require wechatpay/wechatpayApiV3 密钥设置什么是APIv3密钥?如何设置?第一步 进入对应项目目录根目录 校验composer 是否可用输入命令 composer -v 第二步 查询当前可用命...https://blog.csdn.net/fuchto/article/details/122946465官方文档:

        微信支付-开发者文档https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter10_2_18.shtml开始请求

$item = "当获取到投诉资料信息后获取到的 media_url"; $urlInfo = (parse_url($item)); // 获取请求的路径 参数 $media_slot_url = str_replace('/v3/merchant-service/images/','',$urlInfo['path']); try { // $stack 是因为 使用官方 SDK时 由于 sdk 会自动进行验签 而官方返回的是数据流并不用验签 所以需要特殊处理 在请求时加入 ['handler' => $stack] $stack = clone $instance->getDriver()->select()->getConfig('handler'); $stack->remove('verifier'); // 下载接口都是非标接口,要特殊搞一下 要 {+media_slot_url} 这样的语法结构 $res = $instance->chain('v3/merchant-service/images/{+media_slot_url}')->get([ 'handler' => $stack, 'media_slot_url'=>$media_slot_url, ]); $filename = time().rand(9999,99999).'.jpg'; // 获取图片资源 $file = $res->getBody(); // 保存图片到本地 $info = $this->saveImage("./public/upload/media",$filename,$file); }catch (RequestException $e){ echo $e->getMessage()."\n"; echo $e->getResponse()->getBody(); } // 保存图片到本地 function saveImage($save_dir = './public/upload/loan',$filename='image.jpg',$file) { if(trim($save_dir)=='') $save_dir='./'; if(0!==strrpos($save_dir,'/')) $save_dir.='/'; //创建保存目录 if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)) return array('file_name'=>'','save_path'=>'','error'=>5); $resource = fopen($save_dir . $filename, 'a'); fwrite($resource, $file); fclose($resource); unset($file,$url); return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0); }

 为什么使用 {+media_slot_url} 语法结构

请求后响应 

The response's Headers incomplete, must have(`Wechatpay-Nonce`, `Wechatpay-Serial`, `Wechatpay-Signature` and `Wechatpay-Timestamp`). failed,resp code = 200 return body =

是因为没有加入 $stack 进行特殊处理 sdk 进行了 验签 返回值是binary 图片流,不用验签

报错 400 是因为请求时 参数出现了问题 注意 对照一下 返回的参数和 请求的参数之间的区别

其他測試用例

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有