wxpayhelper php setparameter,thinkPHP和onethink微信支付插件分享

thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,分享给大家参考下

//实现的Wxpay钩子方法

public function Wxpay($param){

require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php';

$jsApi = new \JsApi_pub();

//=========步骤1:网页授权获取用户openid============

if (!isset($_GET['code']))

{

//触发微信返回code码

$url = $jsApi->createOauthUrlForCode(\WxPayConf_pub::JS_API_CALL_URL.'/order_id/'.$param['order_id']);

Header("Location: $url");

}else

{

$order_id = $param['order_id'];

$info = M('Order')->where('id='.$order_id)->find();

if(empty($info) || $info['is_pay'] == 1){

dump('该订单不存在或已支付'.$order_id);

exit();

}

$this->assign('info',$info);

$a = $info['money'];

$b = 100;

$c = $a * $b;

//获取code码,以获取openid

$code = $_GET['code'];

$jsApi->setCode($code);

$openid = $jsApi->getOpenId();

}

//=========步骤2:使用统一支付接口,获取prepay_id============

//使用统一支付接口

$unifiedOrder = new \UnifiedOrder_pub();

$unifiedOrder->setParameter("openid","$openid");//商品描述

$unifiedOrder->setParameter("body","在线预订");//商品描述

//自定义订单号,此处仅作举例

$timeStamp = time();

// $out_trade_no = \WxPayConf_pub::APPID."$timeStamp";

$out_trade_no = $info['ordersn'];

$unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号

$unifiedOrder->setParameter("total_fee","$c");//总金额

$unifiedOrder->setParameter("notify_url",\WxPayConf_pub::NOTIFY_URL.'/order_id/'.$param['order_id']);//通知地址

$unifiedOrder->setParameter("trade_type","JSAPI");//交易类型

$prepay_id = $unifiedOrder->getPrepayId();

//=========步骤3:使用jsapi调起支付============

$jsApi->setPrepayId($prepay_id);

$jsApiParameters = $jsApi->getParameters();

$this->assign('jsApiParameters',$jsApiParameters);

$this->display('pay');

}

总结

以上是聚米学院为你收集整理的thinkPHP和onethink微支付插件全部内容,希望文章能够帮你解决thinkPHP和onethink微支付插件所遇到的程序开发问题。

/** * 微信支付帮助库 * ==================================================== * 接口分三种类型: * 【请求型接口】--Wxpay_client_ * 统一支付接口类--UnifiedOrder * 订单查询接口--OrderQuery * 退款申请接口--Refund * 退款查询接口--RefundQuery * 对账单接口--DownloadBill * 短链接转换接口--ShortUrl * 【响应型接口】--Wxpay_server_ * 通用通知接口--Notify * Native支付——请求商家获取商品信息接口--NativeCall * 【其他】 * 静态链接二维码--NativeLink * JSAPI支付--JsApi * ===================================================== * 【CommonUtil】常用工具: * trimString(),设置参数时需要用到的字符处理函数 * createNoncestr(),产生随机字符串,不长于32位 * formatBizQueryParaMap(),格式化参数,签名过程需要用到 * getSign(),生成签名 * arrayToXml(),array转xml * xmlToArray(),xml转 array * postXmlCurl(),以post方式提交xml到对应的接口url * postXmlSSLCurl(),使用证书,以post方式提交xml到对应的接口url */ include_once("SDKRuntimeException.php"); include_once("WxPay.pub.config.php"); /** * 所有接口的基类 */ class Common_util_pub { function __construct() { } function trimString($value) { $ret = null; if (null != $value) { $ret = $value; if (strlen($ret) == 0) { $ret = null; } } return $ret; } /** * 作用:产生随机字符串,不长于32位 */ public function createNoncestr( $length = 32 ) { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str =""; for ( $i = 0; $i $v) { if($urlencode) { $v = urlencode($v); } //$buff .= strtolower($k) . "=" . $v . "&"; $buff .= $k . "=" . $v . "&"; } $reqPar; if (strlen($buff) > 0) { $reqPar = substr($buff, 0, strlen($buff)-1); } return $reqPar; } /** * 作用:生成签名 */ public function getSign($Obj) { foreach ($Obj as $k => $v) { $Parameters[$k] = $v; } //签名步骤一:按字典序排序参数 ksort($Parameters); $String = $this->formatBizQueryParaMap($Parameters, false)
支持MySQL 和 sqlite数据库,快速构建项目原型,直接生成前后台CRUD代码片段,还可根据需要自行定制代码模板,减少重复劳动。 写这个东西的原因是因为我最近沮丧的发现很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单,写前台样式表等等。 2014年9月27日23:53:38更新:升级至0.3版,此次变化较大,放弃了单文件的形式,但是功能更加丰富,支持直接生成文件,快速构建项目原型 ThinkphpHelper ============== 支持MySQL 和 sqlite数据库,快速构建项目原型,直接生成前后台CRUD代码片段,还可根据需要自行定制代码模板,减少重复劳动。 写这个东西的原因是因为我最近沮丧的发现很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单,写前台样式表等等。 Thinkphp对于后台操作的支持已经非常强大,再加上最近非常流行的Bootstrap框架让前台样式也变得容易遵循一个标准,于是我决定开始写一个属于自己的代码生成器。 我希望它操作足够简单,让人一看就懂,对MySql和Sqlite数据库都能够稳定生成CRUD代码就好,还如果还能顺便生成一些符合Bootstrap框架的View代码就更好啦。 ThinkphpHelper诞生至今多谢大家的支持。在这个版本中我放弃了单文件的形式,以便实现更多想法。你可以看到现在界面更漂亮了,功能也更强大了。这个版本最大的亮点就是支持直接生成文件,除了数据库外,你只需要写3行左右的代码就可以快速构建出一个原型系统。我建议你可以根据你的需要自行修改Template文件夹下的模板,使之更符合你的项目需求。 测试中我使用的是Sqlite数据库,复制数据库文件到项目目录下,如使用Mysql数据库可以省略此步骤。 将TPH文件夹复制到项目目录下。 修改项目配置文件,主要是配置数据库信息。 访问一下TPH,应该看到以上界面 点击“生成模块选项”选择好目标模块,把需要生成的表名打上勾,点击生成。成功后,会有提示生成路径。此步骤主要是为了生成布局文件。 点击“生成CRUD代码”,注意选择和上一步相同的数据表,点击生成文件。 修改Index控制器下的index方法内容为:$this->show();如图 再次访问你的项目,have fun. 注意,在使用之前一定要准备好你的数据库以及数据库里的数据表,并且配置好你的模块,不过聪明的你一定知道它是怎么用的对吧? 支持Thinkphp3.2.2 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 项目地址:https://github.com/zhuanqianfish/ThinkphpHelper 详细使用说明地址:http://zhuanqianfish.github.io/ThinkphpHelper ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ThinkphpHelper遵循Apache2开源协议发布,并提供免费使用。 标签:Web框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值