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程序设计有所帮助。
您可能感兴趣
- php面向对象3大特征(PHP面向对象程序设计重载overloading操作详解)
- php如何复制数组(php5对象复制、clone、浅复制与深复制实例详解)
- phparray函数的用法(php array_chunk函数用法与注意事项)
- php调试用什么工具好(调试php程序的简单步骤)
- phpstudy使用教程学习(phpStudy 2016 使用教程详解支持PHP7)
- php生成安全随机数(PHP随机数函数rand与mt_rand的讲解)
- php在没有命名空间之前是怎么调(php命名空间设计思想、用法与缺点分析)
- php和xml有什么关系(PHP创建XML的方法示例基于DOMDocument类及SimpleXMLElement类)
- phpstudy安装教程详解学习(phpstudy下载安装简明图文教程)
- php数组写法(php文件操作之文件写入字符串、数组的方法分析)
- php怎么创建一个文件(PHP文件后缀不强制为.php方法)
- php中变量定义规则(PHP中__set实例用法和基础讲解)
- php数组详解(php数组和链表的区别总结)
- phpstudy不解析php代码(phpstudy伪静态设置的问题)
- php实现异步操作(php提供实现反射的方法和实例代码)
- php如何继承多个类(PHP面向对象程序设计子类扩展父类子类重新载入父类操作详解)
- ()
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
热门推荐
- node.js怎么使用import(Node.js断点续传的实现)
- nodejs部署上传文件(node.js使用express-fileupload中间件实现文件上传)
- php异常和错误区别(PHP批斗大会之缺失的异常详解)
- 以双斜杠//开头的URL的含义
- 响应式布局和自适应布局的不同(浅析两列自适应布局的3种思路)
- react和antd管理系统(手把手教你从零开始react+antd搭建项目)
- docker容器如何更改tomcat端口(Docker方式启动tomcat访问首页出现404错误)
- mysql查询语法总结(MySQL全面瓦解之查询的过滤条件详解)
- sql如何把重复数据记录删除(sql分组后二次汇总处理表重复记录查询和删除的实现方法)
- sql中把一列数据相加(SQL实现相邻两行数据的加减乘除操作)