php对接微信付款(PHP微信支付功能示例)
类别:编程学习 浏览量:1468
时间:2022-04-02 02:43:26 php对接微信付款
PHP微信支付功能示例本文实例讲述了PHP微信支付功能。分享给大家供大家参考,具体如下:
微信开发SDK:文中用的是php_sdk_v3.0.9 :https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
|
import( "wxpay.lib.AppPay#Config" , EXTEND_PATH, ".php" ); import( "wxpay.lib.WxPay#Api" , EXTEND_PATH, ".php" ); //$this->weixinpay(); $config = new \AppPayConfig(); //订单号 $appId = $config ->GetAppId(); $key = $config ->GetKey(); $money = 0.01 * 100; $orderSn = 'M201810241754107557' ; //订单号; $curTime = time(); $input = new \WxPayUnifiedOrder(); $input ->SetBody( "用户红包" ); $input ->SetOut_trade_no( $orderSn ); $input ->SetTotal_fee( $money ); $input ->SetTrade_type( "APP" ); $unifiedOrder = \WxPayApi::unifiedOrder( $config , $input ); if ( $unifiedOrder [ 'result_code' ] == 'SUCCESS' && $unifiedOrder [ 'return_code' ] == 'SUCCESS' ) { /*$unifiedOrder 组成: * ["appid"] => string(18) "wx2xxxx49" ["mch_id"] => string(10) "1xxxxxx01" ["nonce_str"] => string(16) "1GnEUXTuTcFtJVtb" ["prepay_id"] => string(36) "wx241933xxx68fa24ece70611692955" ["result_code"] => string(7) "SUCCESS" ["return_code"] => string(7) "SUCCESS" ["return_msg"] => string(2) "OK" ["sign"] => string(32) "7903xxxxx4710E460CB156" ["trade_type"] => string(3) "APP"*/ $curTime = time(); // 第一部分 $wxpayResult = new \WxPayResults(); $wxpayResult ->SetData( 'appid' , $unifiedOrder [ 'appid' ]); $wxpayResult ->SetData( 'partnerid' , $unifiedOrder [ 'mch_id' ]); $wxpayResult ->SetData( 'prepayid' , $unifiedOrder [ 'prepay_id' ]); $wxpayResult ->SetData( 'noncestr' , $unifiedOrder [ 'nonce_str' ]); $wxpayResult ->SetData( 'timestamp' , $curTime ); $wxpayResult ->SetData( 'package' , "Sign=WXPay" ); $wxpayResult ->SetData( 'sign' , "" ); $wxpayResult ->SetSign( $config ); $data = $wxpayResult ->GetValues(); // 第二部分 $data [ 'appid' ] = $unifiedOrder [ 'appid' ]; $data [ 'partnerid' ] = $unifiedOrder [ 'mch_id' ]; $data [ 'prepayid' ] = $unifiedOrder [ 'prepay_id' ]; $data [ 'noncestr' ] = $unifiedOrder [ 'nonce_str' ];; $data [ 'timestamp' ] = $curTime ; $data [ 'package' ] = "Sign=WXPay" ; $data [ 'sign' ] = $this ->wxappPaySign( $key , $data ); //$unifiedOrder['sign'];//签名,具体签名方案参见微信公众号支付帮助文档; $this ->returnSuccess( $data ); } else { Log::write(var_export( $unifiedOrder , true)); $this ->returnError(300, '微信支付失败' ); } private function wxappPaySign( $key , $parameters ) { $sign = md5(sprintf( "appid=%s&noncestr=%s&package=%s&partnerid=%s&prepayid=%s×tamp=%s&key=%s" , $parameters [ 'appid' ], $parameters [ 'noncestr' ], $parameters [ 'package' ], $parameters [ 'partnerid' ], $parameters [ 'prepayid' ], $parameters [ 'timestamp' ], $key )); return strtoupper ( $sign ); } |
第一部分和第二部分功能是相同的。
官方开发资源
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣
- phpstudy怎么配置php环境(使用phpStudy搭建php环境及安装各种php程序实战教程)
- php在没有命名空间之前是怎么调(php命名空间设计思想、用法与缺点分析)
- cpu怎么访问php(服务器大量php-cgi.exe进程导致CPU占用100%的解决方法)
- 搭建php和mysql的运行环境(Windows环境开发PHP完整配置教程Apache+Mysql+PHP)
- redis在php怎么使用(Windows服务器中PHP如何安装redis扩展)
- phpstudy修改为什么进不去(phpstudy2018升级后站点及phpmyadmin打开404解决方案)
- php运行模式图解(php策略模式简单示例分析区别于工厂模式)
- php网页生成程序(php生成静态页面并实现预览功能)
- php中抽象类和接口的区别(PHP抽象类和接口用法实例详解)
- php网页采集教程交流(PHP实现的抓取小说网站内容功能示例)
- php中数组使用技巧(php常用经典函数集锦数组、字符串、栈、队列、排序等)
- phpword生成图片(PHP生成图片的方法分享)
- php教程7.10.6学习(php5.6.x到php7.0.x特性小结)
- php系统转换的三种方式(PHP容器类的两种实现方式示例)
- php开启curl(解决PHP使用CURL发送GET请求时传递参数的问题)
- php面向对象怎么用(PHP面向对象程序设计之对象克隆clone和魔术方法__clone用法分析)
- 焕然一新 成都轨道集团官方网站改版上线(成都轨道集团官方网站改版上线)
- 成都轨道交通19号线二期全线电通(成都轨道交通19号线二期全线电通)
- 19号线二期全线电通 轨道交通项目最新进展来了(19号线二期全线电通)
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
热门推荐
- vue.js 怎么做插件(Vue.js实现音乐播放器)
- mybatissql解析(mybatis动态sql常用场景总结)
- 两个阿里云账号服务器内网通信(阿里云服务器怎么与租用香港服务器组内网?)
- python中lambda函数是什么意思(python ---lambda匿名函数介绍)
- 如何选择适合自己的云服务器(选择云服务器配置需要注意什么?)
- css赛博朋克风格效果(CSS几步实现赛博朋克2077风格视觉效果)
- docker部署高性能服务器(Docker部署SQL Server 2019 Always On集群的实现)
- Jquery实现table表格行的添加、删除
- mysql时间戳和datetime对比(mysql中 datatime与timestamp的区别说明)
- mysql order by id查询变慢(MySQL不使用order by实现排名的三种思路总结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9