base.php

 public $app;public $payapp;public function initialize(){//小程序配置$config=array('app_id' => Config('app.WeiXinAPPID'),'secret' => Config('app.WeiXinAPPSECRET'),// 下面为可选项// 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名'response_type' => 'array',);$this->app= Factory::miniProgram($config);//验证tocken//$this->CheckAppTocken();$payconfig = [// 必要配置'app_id'             =>Config('app.WeiXinAPPID'),'mch_id'             => Config('app.WeiXinMCHID'),'key'                =>Config('app.WeiXinKEY'),   // API 密钥// 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)'cert_path'          => Config('app.Domain').'/extend/cert/apiclient_cert.pem', // XXX: 绝对路径!!!!'key_path'           => Config('app.Domain').'/extend/cert/apiclient_key.pem',      // XXX: 绝对路径!!!!'notify_url'         =>'',     // 你也可以在下单时单独设置来想覆盖它];$this->payapp = Factory::payment($payconfig);}

调微信支付参数:

//easywechat调起微信支付$result = $this->payapp->order->unify(['body' => '在线支付','out_trade_no' =>$order_frontnumber ,'total_fee' =>(float)($ordermoney*100),'spbill_create_ip' => '', // 可选,如不传该参数,SDK 将会自动获取相应 IP 地址'notify_url' => Config('app.Domain').'/api/pay/wxsuccess1.html', // 支付结果通知网址,如果不设置则会使用配置里的默认地址'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型'openid' => $openid,]);$jssdk = $this->payapp->jssdk;$config = $jssdk->bridgeConfig($result['prepay_id'],false); // 返回数组$back['payparam']=$config;               $back['totalorderid']=$totalorderid;

微信支付回调

namespace app\api\controller;
use app\BaseController;
use think\facade\Db;
use think\facade\Config;use EasyWeChat\Factory;
use EasyWeChat\Payment\Kernel\BaseClient;
class Pay extends BaseController
{public $payapp='';public function initialize(){$payconfig = [// 必要配置'app_id'             =>Config('app.WeiXinAPPID'),'mch_id'             => Config('app.WeiXinMCHID'),'key'                =>Config('app.WeiXinKEY'),   // API 密钥// 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)'cert_path'          => Config('app.Domain').'/extend/cert/apiclient_cert.pem', // XXX: 绝对路径!!!!'key_path'           => Config('app.Domain').'/extend/cert/apiclient_key.pem',      // XXX: 绝对路径!!!!'notify_url'         =>'',     // 你也可以在下单时单独设置来想覆盖它];$this->payapp = Factory::payment($payconfig);}public function wxsuccess1() {BaseClient::setDefaultOptions(['curl' => [CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,],'verify'=>false               //不开启CURLOPT_SSL_VERIFYPEER, 这里后来线上ssl报错加的,原因忘了]);$response = $this->payapp->handlePaidNotify(function ($message, $fail) {file_put_contents('./wx100.txt',var_export($message,true));$orderCode = $message['out_trade_no'];$orderinfo=DB::name('orderfront')->where(['order_frontnumber'=>$orderCode])->find();// echo '<pre>';// print_r($orderinfo);//如果订单不存在 或者 订单已经支付过了告诉微信,我已经处理完了,订单没找到,别再通知我了if(!$orderinfo ||$orderinfo['order_frontpaystate']==1){ return true; }DB::startTrans();if ($message['return_code'] === 'SUCCESS' && $message['result_code']=== 'SUCCESS') {PayNotify1($message);DB::commit();return true;} else {DB::rollBack();return true;}});return $response;}

common.php

function PayNotify1($back)
{//file_put_contents('./200.txt',var_export($back,true));$where = array();$where['order_frontnumber'] = $back['out_trade_no'];$info = DB::name('orderfront')->where($where)->find();$total_fee=round($back['total_fee']/100,2);$time=time();if(empty($info['order_frontnumber'])){ return false;}DB::name('orderfront')->where(['order_frontnumber'=>$info['order_frontnumber']])->update(['order_frontpaystate'=>1,'order_frontpaytime'=>$time]);//更新订单状态--已预约DB::name('order')->where(['order_totalordernumber'=>$info['order_totalordernumber']])->update(['order_state'=>1]);}

使用easywechat调用微信支付相关推荐

  1. 微信公众号页面支付接口java,[Java教程]微信公众号支付(三):页面调用微信支付JS并完成支付...

    [Java教程]微信公众号支付(三):页面调用微信支付JS并完成支付 0 2015-09-15 15:00:30 一.调用微信的JS文件 1.首先要绑定[JS接口安全域名],"公众号设置&q ...

  2. 调用微信支付接口总结

        项目里面用到了微信支付的功能,照着文档学习了一下,这里做个总结来记录.项目用到的是anglusJS来做前端开发,我这边简化了,用的ajax进行异步的调用,然后业务也直接写在了控制层(不过不应该 ...

  3. H5页面调用微信支付

    1.H5页面使用微信支付,首先需要注册微信公众号,在设置与开发>公众号设置>功能设置中配置业务域名.JS接口安全域名.网页授权域名.支付功能页面需在此域名链接下的页面. 2.加入域名后,就 ...

  4. php 调用微信支付的时间戳,前端调用微信支付接口

    支付按钮的点击事件$(´.Save_Patient_Msg´).click(function(){ $(´.Save_Patient_Msg´).off(´click´); var hrdfId = ...

  5. ios调用微信支付提示当前页面的URL未注册

      ios调用JSAPI微信支付提示"当前页面的URL未注册",而页面手动刷新后再次支付则正常,安卓也正常,肯定不是授权目录配置问题.   在微信支付页面,当通过JSAPI微信支付 ...

  6. 关于IOS调用微信支付jsapi不起作用的解决方法

    关于IOS调用微信支付jsapi不起作用的解决方法 参考文章: (1)关于IOS调用微信支付jsapi不起作用的解决方法 (2)https://www.cnblogs.com/randy619/p/5 ...

  7. 移动端页面调用微信支付

    1.话不对说,先来个小漩涡 2.步骤: (1)第一个接口 创建订单号,并且后端携带电子签名 (2)第二个接口 通过后端返回信息,调用微信支付接口callpay方法 3,上代码 //创建订单,做了一些接 ...

  8. 小程序开发调用微信支付以及微信回调地址配置

    首先观看微信提供的文档 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1 清楚调用微信支付必 ...

  9. android kotlin webview内H5调用微信支付问题

    问题 商家参数格式有误,请联系商家解决 微信文档描述 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 解决方法 文档说明白了,要在 ...

  10. 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程)

    本篇记录说明 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程,详细内容可私信交流) (第一次写博客,写得不好的地方见谅,面向新手,大佬请无视,不喜勿喷 ...

最新文章

  1. Spring Boot 2.x基础教程:使用Flyway管理数据库版本
  2. 【转】一步一步学Linq to sql(五):存储过程
  3. 原来C语言和其他高级语言的最大的区别是这个...
  4. VCL组件之公用对话框组件
  5. bzoj 3625(CF 438E)The Child and Binary Tree——多项式开方
  6. ATmega328芯片-“变身”-温度计-,附示例教程
  7. python爬虫实战--------搜狗微信文章(IP代理池和用户代理池设定----scrapy)
  8. bzoj 4816 数字表格 —— 反演
  9. java c HTML,javac html标签
  10. 华为开发者大赛-昇腾AI初创大赛决赛暨星火计划Online第二期来啦!
  11. java数组不初始化长度_数组之初始化 Java
  12. UE4(虚幻4)中蓝图的使用
  13. Google Earth Engine(GEE)——Landsat7条带去除两种方案
  14. 降成本利器——SRM之电子招投标
  15. 三相异步电机------坐标变换(二)
  16. 汽车电子EMC实验简介
  17. android二维码
  18. 学生信息管理系统用php,PHP案例:学生信息管理系统
  19. 漏洞信息收集之——资产梳理
  20. 这个冬天,我爱上了冻酸奶

热门文章

  1. 积分变现|积分变现如何效益最大化?信用卡积分如何快速变现?
  2. android 模拟menu键点击事件,android处理Back键Home键和Menu键事件(转)
  3. 百度定位获取当前信息
  4. 量化新手初识基金绩效分析
  5. 老毛桃u盘装系统linux,老毛桃U盘PE重装系统教程
  6. 兜兜转转躲不命运轮回---Java基础学习笔记2
  7. 拜耳再投4亿元提升在华处方药产能;阿斯利康进博会公布新冠疫苗最新进展 | 美通企业日报...
  8. CPU玩的是效率!超线程双核PK物理三核
  9. Excel使用技巧—每30行取1行数据
  10. [OpenCV练习题实现] 尝试找到一种方法来提取多个彩色对象,例如,同时提取红色,蓝色,绿色对象。