php微信生成签名_微信APP支付服务端PHP生成签名
官网支付说明
商户系统和微信支付系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。
步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
步骤4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】
步骤5:商户后台接收支付通知。api参见【支付结果通知API】
步骤6:商户后台查询支付结果。,api参见【查询订单API】
任务
我们后台需要做的很简单,就是在服务器端生成签名,将签名传给APP,写一个回调地址方法去处理订单支付后的业务逻辑;
实现
这里有一个已经封装好的类:点击下载
里面有两个文件,一个是封装好的类,一个是案例,包含签名和回调地址方法
将WxPayHelper.class.php文件放在ThinkPHP/Library/Org/Util/目录下面
配置参数
配置WxPayHelper.class.php文件里的一些参数
public $config = array(
'appid' => "xcxcxcxcxcxcxcxcxcxcxcxc", /*微信开放平台上的应用id*/
'mch_id' => "200000000", /*微信申请成功之后邮件中的商户id*/
'api_key' => "dassssssssssssssssss", /*在微信商户平台上自己设定的api密钥 32位*/
'notify_url' => 'http://xxxx.com/appWeixinPayNotify' /*自定义的回调程序地址id*/
);
生成签名
//签名
public function wxAppPay($orderBody, $tade_no, $total_fee){
$total_fee = $total_fee * 100; //total_fee 价格
$WxPayHelper = new \Org\Util\WxPayHelper();
$response = $WxPayHelper->getPrePayOrder($orderBody, $tade_no, $total_fee);
if($response['return_code'] == 'SUCCESS'){
$x = $WxPayHelper->getOrder($response['prepay_id']);
return array('status' => 1, 'sign' => $x['sign']); //返回签名
}else{
return array('status' => -1, 'sign' => $response['return_msg']);; //返回错误信息
}
}
配置回调地址
/**
*回调地址
*/
public function appWeixinPayNotify(){
$WxPay = new \Org\Util\WxPayHelper();
$msg = array();
$postStr = file_get_contents('php://input');
$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$data = $msg;
$sign = $data['sign'];
unset($data['sign']);
$_sign = $WxPay->getSign($data);
if($_sign == $sign){
$out_trade_no = $data['out_trade_no'];
//微信支付订单号
$trade_no = $data['transaction_id'];
//交易状态
$trade_status = $data['trade_status'];
if($data['result_code'] == 'SUCCESS') {
//处理订单
//
//
//
//
//
echo "success"; //请不要修改或删除
}
}else{
echo "FAIL";
}
}
标签: 微信
顶一下
(0)
0%
踩一下
(0)
0%
php微信生成签名_微信APP支付服务端PHP生成签名相关推荐
- 微信app支付服务端开发记录
微信APP支付服务端 调用接口需要注意事项: 1.签名:需要全部参数参加签名,空值去掉.(实际传递了什么参数需要,就根据实际参数进行签名) 2.签名参数:appid是申请支付功能的app对于的ID,k ...
- Java 微信支付之APP支付服务端 (一)
Java 微信支付之APP支付服务端 (一) 如图所示,这是服务端要集成的所有微信接口.至于在开放平台申请就不做赘述了.主要流程,1.下单,2.异步通知,3.查询. 一.微信统一下单请求交易 /*** ...
- java app支付_Java 微信支付之APP支付服务端 (一)
Java 微信支付之APP支付服务端 (一) 如图所示,这是服务端要集成的所有微信接口.至于在开放平台申请就不做赘述了.主要流程,1.下单,2.异步通知,3.查询. 一.微信统一下单请求交易 /** ...
- java 支付宝服务端,支付宝app支付服务端的实现-Java版
前言 最近在工作中需要使用支付宝app支付,在初次使用过程中也不可避免的出现了一些问题,那么本次随笔主要是概述支付宝app支付服务端的整个实现过程以及就服务端出现的一些问题做一些总结. 1.准备工作 ...
- PHP 实现支付宝APP 支付 (服务端 + 客户端 + 异步)
目录 一.使用实例 二.服务端 1.下载SDK 2.业务层 3.业务层返回实例 推荐使用联调工具: 4.回调层 三.客户端 总结 一.使用实例 官方信息: 二.服务端 1.下载SDK App 支付服务 ...
- 微信APP支付服务端和Android 端详解及其demo
最近在开发APP微信支付和支付宝支付,Android 端和后端都是我自己开发的,发现两家公司的文档都不是很友好,特别是微信,接触过或者开发过的人都应该有所体会.因此我特意把开发的过程梳理了,做下记录, ...
- java支付宝和微信app支付(服务端处理)
最近在接入支付宝和微信的app支付 , 之前因为大部分做的都是网页版的支付,没接触过app,这次把遇到的坑都记录下来. 首先 支付宝支付 https://openhome.alipay.com/pla ...
- 微信APP支付服务端PHP完整代码
<?php//微信APP支付 一定要先仔细阅读微信的官方文档,统一下单接口 // 调取微信APP支付必须先开通商户后台的微信APP支付 // 注意:开通微信APP支付会发邮件到你们邮箱,下面的商 ...
- 微信app服务端php,微信APP支付服务端PHP完整代码
//微信APP支付 一定要先仔细阅读微信的官方文档,统一下单接口 // 调取微信APP支付必须先开通商户后台的微信APP支付 // 注意:开通微信APP支付会发邮件到你们邮箱,下面的商户号和appid ...
最新文章
- 5G中网络切片技术是什么?—Vecloud
- [YTU]_2417 C语言习题 字符串长度
- 北京内推 | 微软亚洲互联网工程院(STCA)招聘NLP算法实习生
- laravel中migrate的使用
- JavaScript之面向对象与原型笔记整理--------创建对象之原型(2)
- 光线暗看不清键盘怎么办
- Firday分布式家庭理财系统开发文档(原创作者)
- go mod机制详解
- c++ mupdf 提取pdf文件里面图片
- 能“读懂”古文还可反诈骗, 合合信息智能文字识别“黑科技”亮相2022WAIC
- 2022/12/17 mysql 索引基本原理解读
- vue展示日历 考勤展示_vue实现日历组件
- 基因序列的保守性分值
- 设置 XShell 的默认全局配色方案
- AI时代的大门已经打开,Tesra超算网络将加速这个进程!
- Mysql--instr函数的介绍及使用
- vue3出现此警告信息:[Vue warn]: Failed to resolve component: dpan
- 很多朋友问我:什么是博客?为什么要博客!
- 顺丰新财报:迎来上市来最好Q4业绩,强大修复能力下的新长跑
- RNN识别PTB数据代码精解
热门文章
- 《Java SE实战指南》09-01:访问级别修饰符概述
- 数据元素、数据项、组合项、数据结构
- linux下登录ftp使用lftp命令详解
- python 'utf-8' codec can't decode byte 0xca in position 21: invalid continuation byte
- 【软考必读】软考高级证书对工作的6大帮助
- pandoc提取word中的图片
- 华为AC忘记console密码
- java发现城市_java实现简单注册选择所在城市
- 超级实用——用word与谷歌翻译将英文PDF文档翻译成中文,免费无限制之美
- linux服务器好管理吗,给初学者Linux服务器管理建议