其中如果想在一个laravel中使用多个不同主题的支付账户,可以在方法实例对象时,将对应的参数进行修改配置。

其中小程序支付,已得到验证。

1、公众号支付等资格申请

2、公众号对应的支付商户主体申请 开通H5支付

3、配置easywechat,并填写配置文件

4、方法中如下

public function userOrderWechatMobile(Request $request)
{
$data = $request->all();
//金钱特殊处理,通过后台查询取得
$res_order = \DB::table('dxjk_order')
->where('order_id',$data['order_id'])
->first();
$order_sid = $res_order->order_sid;
$money = $res_order->order_money;
$attributes = [
'trade_type' => 'MWEB', // JSAPI,NATIVE,APP...微信H5就是MWEB
'body' => '测试',
'detail' => '测试',
'out_trade_no' => $order_sid,
'total_fee' => $money * 100, // 单位:分
'notify_url' => 'https://jiankang.danxigu.com/dxjk/notifyUrlJk',
// 'openid' => $request->get('openid'),//小程序支付等需要
       'scene_info' => "{\"h5_info\": {\"type\":\"Wap\",\"wap_url\": \"http://jiankang.danxigu.com/m_web\",\"wap_name\": \"丹溪预约\"}}",//这个是H5支付场景所用,项目中使用的jso
        ];
$orde = new Order($attributes);
     $dre_url = '指定路径';
// 统一下单
$result = $this->wechat->payment->prepare($orde);
$prepayId = null;
if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
$prepayId = $result->prepay_id;         $mweb_url = $result->mweb_url . "&redirect_url=" . $dre_url;//返回前台跳转支付的中间也,网址默认跳到发起支付的页面,加参数redirect_url后,跳到指定页面
//            $config = $this->wechat->payment->configForPayment($prepayId,false);// 返回 json 字符串,如果想返回数组,传第二个参数 false
$config_jsp = $this->wechat->payment->configForJSSDKPayment($prepayId);//两种不同的返回
return ['code' => 1000, 'data' => $config_jsp,'mweb_url' => $mweb_url];
} else {
return ['code' => 1001, 'data' => ['message' => '订单支付失败']];
} }
//EasyWechat laravel中多个公众号,和商户的支付处理 示例
$options = [
/*
* Debug 模式,bool 值:true/false
*
* 当值为 false 时,所有的日志都不会记录
*/
'debug' => true, /*
* 使用 Laravel 的缓存系统
*/
'use_laravel_cache' => true, /*
* 账号基本信息,请从微信公众平台/开放平台获取
*/
'app_id' => env('WECHAT_APPID', 'wx5b80a44ad4'), // AppID
'secret' => env('WECHAT_SECRET', 'cdea2e4e50137'), // AppSecret
'token' => env('WECHAT_TOKEN', 'danxigu'), // Token
'aes_key' => env('WECHAT_AES_KEY', 'pG9BO18oH5u'), // EncodingAESKey /**
* 开放平台第三方平台配置信息
*/
//'open_platform' => [
/**
* 事件推送URL
*/
//'serve_url' => env('WECHAT_OPEN_PLATFORM_SERVE_URL', 'serve'),
//], /*
* 日志配置
*
* level: 日志级别,可选为:
* debug/info/notice/warning/error/critical/alert/emergency
* file:日志文件位置(绝对路径!!!),要求可写权限
*/
'log' => [
'level' => env('WECHAT_LOG_LEVEL', 'debug'),
'file' => env('WECHAT_LOG_FILE', storage_path('logs/wechat.log')),
], /*
* OAuth 配置
*
* only_wechat_browser: 只在微信浏览器跳转
* scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login
* callback:OAuth授权完成后的回调页地址(如果使用中间件,则随便填写。。。)
*/
'oauth' => [
'only_wechat_browser' => false,
'scopes' => array_map('trim', explode(',', env('WECHAT_OAUTH_SCOPES', 'snsapi_base'))),
'callback' => env('WECHAT_OAUTH_CALLBACK', '/callbackAuthorized'),
], /*
* 微信支付
*/
'payment' => [
'merchant_id' => env('WECHAT_PAYMENT_MERCHANT_ID', '129695'),
'key' => env('WECHAT_PAYMENT_KEY', 'c90bac7e771c266f8'), // md5('')
'cert_path' => env('WECHAT_PAYMENT_CERT_PATH', public_path('jio/cert/apiclient_cert.pem')), // XXX: 绝对路径!!!!
'key_path' => env('WECHAT_PAYMENT_KEY_PATH', public_path('jiao/cert/apiclient_key.pem')), // XXX: 绝对路径!!!!
// 'device_info' => env('WECHAT_PAYMENT_DEVICE_INFO', ''),
// 'sub_app_id' => env('WECHAT_PAYMENT_SUB_APP_ID', ''),
// 'sub_merchant_id' => env('WECHAT_PAYMENT_SUB_MERCHANT_ID', ''),
// ...
],
]; $app = new Application($options); $payment = $app->payment;
$money = $goods->goods_money;
$order_sid = $morder['morder_sid'];
$openid = $data['openid'];
$goods_name = $goods->goods_name;
$attributes = [
'trade_type' => 'JSAPI', // JSAPI,NATIVE,APP...
'body' => $goods_name,
'detail' => $goods_name,
'out_trade_no' => $order_sid,
'total_fee' => $money * 100, // 单位:分
'notify_url' => 'https://jiankang.danxigu.com/dxjk/notifyJbb',
'openid' => $openid,
];
$order = new Order($attributes);
// 统一下单
$result = $payment->prepare($order);
$prepayId = null;
if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
$prepayId = $result->prepay_id;
$config = $payment->configForJSSDKPayment($prepayId);
return ['code' => 1000, 'data' => $config,'order_sid' => $order_sid];
} else {
return ['code' => 1015, 'data' => ['message' => '生成订单错误!']];
}

微信H5支付 EasyWechat的更多相关文章

  1. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结

    最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...

  2. PHP微信H5支付开发

    近来公司项目要求用到微信H5开发,因为微信开发文档处处都是坑,我也走了不少弯路,现在就把H5支付的过程记录一下,已备后用!! 首先 先去商户平台申请开通 H5支付!!!! 我们从微信官方下载H5支付d ...

  3. 微信H5支付网络环境未能通过安全验证,请稍后再试(获取终端ip )

    在写微信H5支付的时候需要获取终端IP使用官方的方法是不对的报错如下: 故重写一个:如下 function get_client_ip(){ if(getenv('HTTP_CLIENT_IP') & ...

  4. 【第二十篇】C#微信H5支付 非微信内浏览器H5支付 浏览器微信支付

    微信开发者文档 微信H5支付官方文档   请阅读清楚  最起码把所有参数看一遍 这个地方也可以看看 微信案例 http://wxpay.wxutil.com/mch/pay/h5.v2.php,请在微 ...

  5. ***新版微信H5支付技术总结(原创)

    新版微信H5支付官方文档: https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1 H5支付是指商户在微信客户端外 ...

  6. 微信H5支付坑一--手续费未结算

    简单随笔小记: 场景:在微信H5支付的过程中,无论怎么支付完成,在微信商户后台查询手续费依然未扣除,当时手续费账户月为5元. 解决方法:起初无论怎么测试都不知道代码到底问题出在哪里了,想一下手续费账户 ...

  7. 微信h5支付出现“商家参数格式有误,请联系商家解决”

    在浏览器进行微信h5支付时出现:

  8. C#版微信公众号支付|微信H5支付|微信扫码支付问题汇总及解决方案总结

    最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存.代码在文章结尾处,有需要的 ...

  9. 黄聪:微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付

    一.首先先确定H5支付权限已经申请! 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB ...

随机推荐

  1. [LnOI2019]加特林轮盘赌(DP,概率期望)

    [LnOI2019]加特林轮盘赌(DP,概率期望) 题目链接 题解: 首先特判掉\(p=0/1\)的情况... 先考虑如果\(k=1\)怎么做到\(n^2\)的时间复杂度 设\(f[i]\)表示有\( ...

  2. IDEA 修改JSP和后端数据后,页面刷新可以实时更新

    情况:刚开始使用IDEA进行开发时,发现修改JSP页面或者后端数据后,再刷新浏览器页面,发现没有变化,页面无更新. 这样就导致不得不频繁重启tomcat服务器.非常麻烦 解决方法: 步骤1. 先设置t ...

  3. Ceph 纠删码介绍

    http://ceph.org.cn/2016/08/01/ceph-%E7%BA%A0%E5%88%A0%E7%A0%81%E4%BB%8B%E7%BB%8D/

  4. Samba的安装配置使用

    ////////////////////////////////Samba//////////////////////////////////////////// 小常识:在同一局域网中,两个系统的工 ...

  5. 入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 术语(二)

    你应该知道的在文档和对象模型中使用一些特定的术语: OpenID Connect Provider (OP) 授权服务器 Thinktecture IdentityServer v3 是一个.NET ...

  6. activity状态的保存和恢复

    activity状态的保存和恢复 一.简介 1.保存activity状态 * 保存activity状态,onSaveInstanceState这个方法会自动保存有ID的组件的状态 * 没有ID的组件或 ...

  7. Django开发点菜系统学习笔记

    1.使用django-simple-captcha包的时候,会调用到: register_form = RegisterForm(request.POST) 但是这个时候captcha不进行错误检验, ...

  8. 在一个web 应用中,改变url无非是2种方式,一种是利用超链接进行跳转,另一种是使用浏览器的前进和回退功能

    在一个web 应用中,改变url无非是2种方式,一种是利用超链接进行跳转,另一种是使用浏览器的前进和回退功能 https://www.jianshu.com/p/27ee7df4ccc1

  9. 【Java】方法的重载与重写

    一.方法的重载 1.概念 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数. 调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方 ...

  10. Linux中查看各文件夹大小命令:du -h --max-depth=1

    Linux中查看各文件夹大小命令:du -h --max-depth=1 du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-siz ...