全部
常见问题
产品动态
精选推荐

PHP如何简单对接微信功能

管理 管理 编辑 删除

第一步使用composer安装EasyWeChat

https://www.easywechat.com/docs/3.x/installation

第二步在前面我们已经讲过,初始化 SDK 的时候方法就是创建一个 EasyWeChat\Foundation\Application 实例:

use EasyWeChat\Foundation\Application;

$options = [

  // ...];

$app = new Application($options);

/**

* 如果想要在Application实例化完成之后, 修改某一个options的值,

* 比如服务商+子商户支付回调场景, 所有子商户订单支付信息都是通过同一个服务商的$option 配置进来的,

* 当oauth在微信端验证完成之后, 可以通过动态设置merchant_id来区分具体是哪个子商户

*/$app['config']->set('oauth.callback','wechat/oauthcallback/'. $sub_merchant_id->id);

那么配置的具体选项有哪些,下面是一个完整的列表:

<?php

return [

   /**

    * Debug 模式,bool 值:true/false

    *

    * 当值为 false 时,所有的日志都不会记录

    */

   'debug'  => true,

   /**

    * 账号基本信息,请从微信公众平台/开放平台获取

    */

   'app_id'  => 'your-app-id',         // AppID

   'secret'  => 'your-app-secret',     // AppSecret

   'token'   => 'your-token',          // Token

   'aes_key' => '',                    // EncodingAESKey,安全模式与兼容模式下请一定要填写!!!

   /**

    * 日志配置

    *

    * level: 日志级别, 可选为:

    *         debug/info/notice/warning/error/critical/alert/emergency

    * permission:日志文件权限(可选),默认为null(若为null值,monolog会取0644)

    * file:日志文件位置(绝对路径!!!),要求可写权限

    */

   'log' => [

       'level'      => 'debug',

       'permission' => 0777,

       'file'       => '/tmp/easywechat.log',

   ],

   /**

    * OAuth 配置

    *

    * scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login

    * callback:OAuth授权完成后的回调页地址

    */

   'oauth' => [

       'scopes'   => ['snsapi_userinfo'],

       'callback' => '/examples/oauth_callback.php',

   ],

   /**

    * 微信支付

    */

   'payment' => [

       'merchant_id'        => 'your-mch-id',

       'key'                => 'key-for-signature',

       'cert_path'          => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!

       'key_path'           => 'path/to/your/key',      // XXX: 绝对路径!!!!

       // 'device_info'     => '013467007045764',

       // 'sub_app_id'      => '',

       // 'sub_merchant_id' => '',

       // ...

   ],

   /**

    * Guzzle 全局设置

    *

    * 更多请参考: http://docs.guzzlephp.org/en/latest/request-options.html

    */

   'guzzle' => [

       'timeout' => 3.0, // 超时时间(秒)

       //'verify' => false, // 关掉 SSL 认证(强烈不建议!!!)

   ],];

使用EasyWeChat可以完成支付功能

你在阅读本文之前确认你已经仔细阅读了:微信支付 | 企业付款文档

配置在前面的例子中已经提到过了,支付的相关配置如下:

<?php

use EasyWeChat\Foundation\Application;

$options = [

   // 前面的appid什么的也得保留哦

   'app_id' => 'xxxx',

   // ...

   // payment

   'payment' => [

       'merchant_id'        => 'your-mch-id',

       'key'                => 'key-for-signature',

       'cert_path'          => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!

       'key_path'           => 'path/to/your/key',      // XXX: 绝对路径!!!!

       'notify_url'         => '默认的订单回调地址',       // 你也可以在下单时单独设置来想覆盖它

       // 'device_info'     => '013467007045764',

       // 'sub_app_id'      => '',

       // 'sub_merchant_id' => '',

       // ...

   ],];

$app = new Application($options);

$payment = $app->payment;

创建订单

<?php

use EasyWeChat\Payment\Order;

$attributes = [

   'trade_type'       => 'JSAPI', // JSAPI,NATIVE,APP...

   'body'             => 'iPad mini 16G 白色',

   'detail'           => 'iPad mini 16G 白色',

   'out_trade_no'     => '1217752501201407033233368018',

   'total_fee'        => 5388, // 单位:分

   'notify_url'       => 'http://xxx.com/order-notify', // 支付结果通知网址,如果不设置则会使用配置里的默认地址

   'openid'           => '当前用户的 openid', // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识,

   // ...];

$order = new Order($attributes);

统一下单

$result = $payment->prepare($order);

if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS'){

$prepayId = $result->prepay_id;

}

支付结果通知

在用户成功支付后,微信服务器会向该 订单中设置的回调URL 发起一个 POST 请求,请求的内容为一个 XML。里面包含了所有的详细信息,具体请参考: 支付结果通用通知

在本 SDK 中处理回调真的再简单不过了,请求验证你就不用管了,SDK 已经为你做好了,你只需要关注业务即可:

$response = $app->payment->handleNotify(function($notify, $successful){

   // 你的逻辑

   return true; // 或者错误消息});

$response->send(); // Laravel 里请使用:return $response;

使用EasyWeChat完成提现到零钱功能企业付款到零钱

你在阅读本文之前确认你已经仔细阅读了:微信支付 | 企业付款文档

与其他支付接口一样,企业支付接口也需要配置如下参数,需要特别注意的是,企业支付相关的全部接口 都需要使用 SSL 证书,因此 cert_path 以及 cert_key 必须正确配置

<?php

use EasyWeChat\Foundation\Application;

$options = [

   'app_id' => 'your-app-id',

   // payment

   'payment' => [

       'merchant_id'        => 'your-mch-id',

       'key'                => 'key-for-signature',

       'cert_path'          => 'path/to/your/cert.pem',

       'key_path'           => 'path/to/your/key',

       // ...

   ],];

$app = new Application($options);

$merchantPay = $app->merchant_pay;

企业付款

企业付款使用的余额跟微信支付的收款并非同一账户,请注意充值。

<?php

$merchantPayData = [

       'partner_trade_no' => str_random(16), //随机字符串作为订单号,跟红包和支付一个概念。

       'openid' => $openid, //收款人的openid

       'check_name' => 'NO_CHECK',  //文档中有三种校验实名的方法 NO_CHECK OPTION_CHECK FORCE_CHECK

       're_user_name'=>'张三',     //OPTION_CHECK FORCE_CHECK 校验实名的时候必须提交

       'amount' => 100,  //单位为分

       'desc' => '企业付款',

       'spbill_create_ip' => '192.168.0.1',  //发起交易的IP地址

   ];

$result = $merchantPay->send($merchantPayData);

如同已上的两个功能一样使用EasyWeChat就可以快速简单的完成和微信相关的功能了

请登录后查看

全 最后编辑于2025-01-22 11:38:18

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
23
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服