首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Thinkphp5集成微信支付:公众号支付、小程序支付、扫码支付、账户转账、手机站支付、刷卡支付等

Thinkphp5集成微信支付:公众号支付、小程序支付、扫码支付、账户转账、手机站支付、刷卡支付等

作者头像
程序猿的栖息地
发布2022-04-29 14:23:11
发布2022-04-29 14:23:11
2.7K00
代码可运行
举报
运行总次数:0
代码可运行

作者:阿dai哥

教程分享

TUTORIAL TO SHARE

天分享了一篇Thinkphp5实现支付宝支付的功能,今天接着利用昨天的代码再分享一篇Thinkphp实现微信支付的功能,实现了如下功能:【公众号支付】【手机站支付】【APP支付】刷卡支付【扫码支付】【账户转账】【小程序支付】【普通红包】【裂变红包】

分享心得

SHARE THE BODY

以前写微信支付的时候非常蛋疼,今天给大家分享一个微信支付的非官方SDK,在前辈的基础上拓展微信支付功能。https://github.com/yansongda/pay。

!!请先熟悉 微信官方支付说明文档!!

代码分享

SHARE THE BODY

下面就是支付核心的代码

代码语言:javascript
代码运行次数:0
运行
复制
use Yansongda\Pay\Pay;
$config = [
    'appid' => 'xx',
    'app_id' => 'xx',
    'miniapp_id' => 'xx',
    'mch_id' => '145776xxxx',
    'key' => 'mF2suE9sU6Mk1CxxxxIxxxxx',
    'notify_url' => 'http://baidu.net.cn',
    'cert_client' => './cert/apiclient_cert.pem',
    'cert_key' => './cert/apiclient_key.pem',
    'log' => [ // optional
        'file' => './logs/wechat.log',
        'level' => 'info',
        'type' => 'single',
        'max_file' => 30,
    ],
    'http' => [ // optional
        'timeout' => 5.0,
        'connect_timeout' => 5.0,
    ],
    // 'mode' => 'dev',
];// 支付
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee'      => '1',
    'openid' => 'onkVf1FjWS5SBxxxxxxxx',
];
$result = Pay::wechat($config)->mp($order);
// 退款
$order = [
    'out_trade_no' => '1514192025',
    'out_refund_no' => time(),
    'total_fee' => '1',
    'refund_fee' => '1',
    'refund_desc' => '测试退款haha',
];
$result = Pay::wechat($config)->refund($order);
// 查询
$result = Pay::wechat($config)->find('out_trade_no_123456');
// 取消
//微信未提供取消订单接口,访问此接口将抛出 `GatewayException` 异常。
// 关闭
$result = Pay::wechat($config)->close('out_trade_no_123456'); //
// 验证服务器数据
$wechat = Pay::wechat($config)
// 是的,验签就这么简单!
$data = $wechat->verify();
$wechat->success()->send();

公众号支付

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee' => '1',
    'openid' => 'onkVf1FjWS5SBxxxxxxxx',
];
$result = Pay::wechat($config)->mp($order);

手机支付

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee' => '1',
];
return $wechat->wap($order)->send();

APP支付

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee' => '1',
];
// 将返回 json 格式,供后续 APP 调用,调用方式不在本文档讨论范围内,请参考官方文档。
return $wechat->app($order)->send();

刷卡支付

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee'      => '1',
    'auth_code' => '1354804793001231564897',
];
$result = $wechat->pos($order);

扫码支付

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee'      => '1',
];
// 扫码支付使用 模式二
$result = $wechat->scan($order);
// 二维码内容: $qr = $result->code_url;

账户转账

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
order = [
    'partner_trade_no' => '',              //商户订单号
    'openid' => '',                        //收款人的openid
    'check_name' => 'NO_CHECK',            //NO_CHECK:不校验真实姓名\FORCE_CHECK:强校验真实姓名
    // 're_user_name'=>'张三',              //check_name为 FORCE_CHECK 校验实名的时候必须提交
    'amount' => '1',                       //企业付款金额,单位为分
    'desc' => '帐户提现',                  //付款说明
];
$result = $wechat->transfer($order);

小程序支付

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'out_trade_no' => time(),
    'body' => 'subject-测试',
    'total_fee' => '1',
    'openid' => 'onkVf1FjWS5SBxxxxxxxx',
];
$result = $wechat->miniapp($order);

普通红包

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'mch_billno' => '商户订单号',
    'send_name' => '商户名称',
    'total_amount' => '1',
    're_openid' => '用户openid',
    'total_num' => '1',
    'wishing' => '祝福语',
    'act_name' => '活动名称',
    'remark' => '备注',
];
$result = $wechat->redpack($order);

裂变红包

SHARE THE BODY

代码语言:javascript
代码运行次数:0
运行
复制
$order = [
    'mch_billno' => '商户订单号',
    'send_name' => '商户名称',
    'total_amount' => '1',
    're_openid' => '用户openid',
    'total_num' => '3',
    'wishing' => '祝福语',
    'act_name' => '活动名称',
    'remark' => '备注',
];
$result = $wechat->groupRedpack($order);
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿的栖息地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档