snowlyg/wechatpay-guzzle
Composer 安装命令:
composer require snowlyg/wechatpay-guzzle
包简介
微信支付v3接口-商户进件提交,状态查询,以及图片上传
关键字:
README 文档
README
微信支付v3 接口-特约商户进件提交,状态查询,以及图片上传 , 使用 https://github.com/snowlyg/wechatpay-guzzle 实现微信签名认证。
环境要求
- PHP 5.5+ / PHP 7.0+
- guzzlehttp/guzzle 6.0+
注意:PHP < 7.2 需要安装 bcmath 扩展
安装 composer
composer require snowlyg/wechatpay-guzzle
使用方法
参考:https://github.com/wechatpay-apiv3/wechatpay-guzzle-middleware/blob/master/README.md
图片数据获取
// $filepath 图片地址
$imginfo = pathinfo($filepath);
$picturedata = file_get_contents($filepath);
$sign = hash('sha256', $picturedata);
$meta = [
"filename" => $imginfo['basename'],
"sha256" => $sign,
];
$filestr = json_encode($meta);
图片 body 生成
public function getBody($filestr, array $imginfo, $picturedata)
{
$boundarystr = "--{$this->boundary}\r\n";
$out = $boundarystr;
$out .= 'Content-Disposition: form-data; name="meta";'."\r\n";
$out .= 'Content-Type: application/json; charset=UTF-8'."\r\n";
$out .= "\r\n";
$out .= "".$filestr."\r\n";
$out .= $boundarystr;
$out .= 'Content-Disposition: form-data; name="file"; filename="'.$imginfo['basename'].'";'."\r\n";
$out .= 'Content-Type: image/'.$imginfo['extension'].';'."\r\n";
$out .= "\r\n";
$out .= $picturedata."\r\n";
$out .= "--{$this->boundary}--\r\n";
return $out;
}
图片签名
// 上传图片
$resp = $client->request('POST', 'https://api.mch.weixin.qq.com/v3/...', [
'body' =>\GuzzleHttp\Psr7\stream_for($body),
// meta的json串 ,签名使用
"metaJson" => '{ "filename": "filea.jpg", "sha256": " hjkahkjsjkfsjk78687dhjahdajhk " }',
'headers' => [
'Accept' => 'application/json',
"Content-Type" => " multipart/form-data;boundary=boundary",
]
]);
进件敏感数据加密
public function getEncrypt($str)
{
$public_key = file_get_contents($this->wechat_public_cert);
$encrypted = '';
if (openssl_public_encrypt($str, $encrypted, $public_key, OPENSSL_PKCS1_OAEP_PADDING)) {
$sign = base64_encode($encrypted);
} else {
throw new Exception('encrypt failed');
}
return $sign;
}
开发插曲
写此功能的时候,在微信开放社区找到一个写过次功能的哥们联系方式。本来想向他请教一下,以免自己少走弯路。没想到这哥们直接开口要 300 大洋....
看来没法偷懒了,只能自己写了。
在微信开放社区找到很多朋友分享的代码,非常感谢他们。
还有微信官方文档的微信签名 sdk , https://github.com/wechatpay-apiv3/wechatpay-guzzle-middleware
联系交流
如果你发现了BUG或者有任何疑问、建议,请通过issue进行反馈。
snowlyg/wechatpay-guzzle 适用场景与选型建议
snowlyg/wechatpay-guzzle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 142 次下载、GitHub Stars 达 13, 最近一次更新时间为 2020 年 04 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「wechatpay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 snowlyg/wechatpay-guzzle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 snowlyg/wechatpay-guzzle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 snowlyg/wechatpay-guzzle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel package to easily integrate Xendit payment gateway. It supports credit and debit cards, and e-wallet payments and custom invoices, queued notifications, webhook listeners and more.
微信支付在laravle5中的封装
提供统一支付、统一扫码、交易查询、推送通知、退款等功能,新增微信批量转账和查询功能
PHP微信支付电商收付通V3版本SDK
WeChat platform and WeChat payment development tools
统计信息
- 总下载量: 142
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2020-04-11