wechat-pay
所属分类:支付接口
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2023-11-02 03:45:42
上 传 者:
sh-1993
说明: 微信支付
(wechat pay)
文件列表:
config/ (0, 2023-07-20)
config/wxpay.json (423, 2023-07-20)
doc/ (0, 2023-07-20)
doc/Config.md (816, 2023-07-20)
doc/Log.md (430, 2023-07-20)
src/ (0, 2023-07-20)
src/config/ (0, 2023-07-20)
src/config/config.cc (1854, 2023-07-20)
src/config/config.h (839, 2023-07-20)
src/log/ (0, 2023-07-20)
src/log/log.cc (682, 2023-07-20)
src/log/log.h (808, 2023-07-20)
src/main.cc (3211, 2023-07-20)
src/wechat/ (0, 2023-07-20)
src/wechat/wechat.cc (14922, 2023-07-20)
src/wechat/wechat.h (2246, 2023-07-20)
util/ (0, 2023-07-20)
util/util.cc (1356, 2023-07-20)
util/util.h (286, 2023-07-20)
# 简介
这是一个使用 C++ 对项目中需要使用JSAPI进行微信支付接入的组件。接入的微信支付接口是 `JSAPIv3`。
|环境|说明|
|:-|:-|
|ubuntu 22|操作系统环境
|openssl|加解密操作开源库
|boost|解析json包用于通信
|httplib|发送网络数据包的库
在使用组件之前需要安装上面的一些开源库,其中如果 `boost/json` 库如果不是动态连接的话需要将组件中关于 `boost/json` 库的头文件更改为 `#include ` 改为静态库应用,其他的库最好下载后安装到本地作为动态库进行连接。
本组件拥有自己的[日志系统](https://github.com/doc/Log.md),可以通过修改配置文件中日志的 `输出路径` 和 `日志格式` 与实际项目的日志的输出路径进行日志融合。
本组件拥有自己的[配置系统](https://github.com/doc/Config.md), 支持自己修改配置,实现组件的健壮性。
# 使用说明
本组件所做的工作主要有:获取前端传递的商户订单号,总金额, `open_id` 来向微信支付获取 `prepay_id` 完成预支付,将获取到的 `prepay_id` 按照官方文档打包好发给前端.
微信支付通知,通过微信支付通知的时候在本地对微信的密文进行解密,解析出 `json` 体返回给前端。
## 使用前
使用前需要将关于自己商户信息在 `wxpay.json` 中进行配置,然后即可使用。
**关于 `wxpay.json` 文件说明**
|参数|说明|
|:-|:-|
| "appid"| 微信生成的应用ID
| "mchid"| 直连商户号
| "clientPrivateKeyPath"| 商户私钥路径,文件格式是.pem
| "clientCertPath" | 商户证书路径,文件格式是.pem
| "WechatCertPath" | 微信平台证书路径,文件格式是.pem
| "WechatPublicKeyPath" | 微信平台证书的公钥,文件格式是.pem
| "Description" | 商品描述
| "AuthenticationType" | 认证类型,但是目前微信有规定的认证类型,具体的话建议去微信开发文档确认
| "apiv3key" | 商户的32位apiv3的密钥
| "wx_serial_no" | 微信证书的序列号
| "client_serial_no" | 商户证书的序列号
| "notify_url" | 支付回调路径
| "backup_path" | 配置文件的备份路径
| "wxpayCfg_path" | 配置文件的备份
| "wxpayLogPath" | 组件日志路径
| "wxpayLogFormat" | 输出日志格式
# 使用样例
下面是一个简单的使用例子,所有关于本组件的api都在~/src/main.cc文件里面,所以也可以根据自己的需求进行增加。
```c++
// 处理前端发起的支付请求,向微信发起JSAPI支付下单
boost::json::value result = OrderPay(open_id, order_serial, total); // 返回前端
// TODO 返回给前端
// 处理微信的支付回调通知
boost::json::value result = PayCallBack(httplib::Request& request);
// 返回给前端,修改数据库
// 最后应答通知
if (!ReplyWechat()) {
// 出错日志处理
}
```
[注] 本组件仅仅提供实现参考,具体实现应结合实际,增加敏感信息的加密保证数据的安全。 有任何问题或者不足的地方请在 `issues` 中指出, 看到后会第一时间修改。
本组件目前仅仅完成了能实现 `JSAPI` 支付的基本操作,后续会继续完善对微信支付的接口。
近期下载者:
相关文件:
收藏者: