VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
新天域互联优惠活动
wexlayer优惠活动
最新

ThinkPHP实施微信支付(JSAPI付款)(PHP是微信支付)

主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

本文将主要介绍有关微信支付实施过程(JSAPI付款)的教程。需要它的朋友可以参考:

我在讨论实施微信付款过程(JSAPI付款)之前写了一篇文章。有关更多信息,请参见文章:实施PHP微信支付(JSAPI付款)流程。

当时的环境没有使用框架。通过直接在域名指出的目录下创建一个新目录来实现。但是,当应用于框架时,仍然存在一些问题。 ThinkPHP在路由规则和付款批准目录之间有差异,并报告了错误。 本文解释了将微信支付与TP集成的过程。

Tencent发布的SDK和文档无法理解它们并保持强大。当您使用它们时,您会知道。 它更简单,更容易理解吗? 只能硬重构显示腾讯程序员的出色技术吗? 嗯...它暴露了我的初学者属性...实际上,SDK非常有用,但是我也在上一篇文章中看到了它。付款完成回调功能确实使我感到头晕。

对于那些不想被正式锁定并希望在TP上使用微信的人,您可以根据官方文件本人创建的TP付款SDK。我下载了源代码并阅读。该代码以优雅的介绍编写,并且该过程非常简单易懂。 有关更多信息,请参见博客文章:http://baijunyao.com/article/78

我皱着眉头,使用了官方的SDK并成功付款。让我分享过程:

1。下载和更改SDK

我对此并不多。如果不确定,则可以查看上一篇文章。 PHP实现微信支付(JSAPI付款)过程。

2。官方帐户设置

a。 您需要设置Web身份验证域名,但这没什么特别的。

b。 许多人在使用重写模式时使用重写模式(重写模式)或伪静态模式。此时生成的链接是http:// sservername/home/blog/read/id/1;

如果您使用的是PathInfo模式,则生成的链接为http://servername/index.php/home/blog/blog/read/id/1。例如,如果您在主页模块下的博客控制器中使用特定方法付款,则您支付的认证目录必须为http:// servername/home/blog/of http://servername/index.php/home/blog/。

3。付款过程

(1)集成订单的付款参数配置

这基本与上一篇文章基本相同。关键是要注意付款回调验证链接。它直接将参数配置封装在应用程序/common/common/common/function.php中,因为必须多次调用。我的SDK位于项目的根目录中的API目录中,因此部署SDK时,它不是供应商功能。

/***wechat Payment*@param String $openID*@param String $product name*@param String $attach parameter, Order ID*@param String $Order Order Number*@param String $Total_fee lument function wxpay($openid, $odsn, $orgent fore $/api/wxpay/lib/wxpay.api.php requires_once app_root. /PI/wxpay/payment/wxpay.jsapipay.php require_once app_root。 '/api/wxpay/payment/log.php';  //初始化log $ loghandler = new clogfilehandler(app_root./api/wxpay/logs/.date(('Y y] $ log = log = log = log :: init($ loghandler,15); $ tools = new jsapipay() - setBody($货setime_start(日期(ymdhis)); //付款时间$输入- setime_expire(date(ymdhis,time()+600); // setNotify_url(http://.qul_server ['http_host']。/payment.php/weexinapi/weixinpay/notify $ input - setTrade_type(jsapi //付费类型$ input $ input - setopenid($ openID); //用户openID $ openID $ proce getjsapipiparameters($ jsapiparameters; http:// servername/xxx.php。 'wexinapi'['c'] ='weixinpay ['a'] ='notify';');  定义(app_root,dirname(__ file __));  //介绍thinkphp输入文件'./thinkcore/thinkcore.php';  //尊敬的^ _^不需要代码。稍后,代码非常简单

当您访问http://servername/payment.php时,您可以直接在http://servername/payment.php/weexinapi/weixinapi/weixinpay/notifie中直接输入http://servername/payment.php。这样,您可以将回调验证链接编写为http://servername/payment.php。另外,您可以编写http://servername/payment.php/wexinapi/weixinpay/notify。

(2)开始付款

它仍然很简单:

/***付款测试*wechat访问:http://daoshi.sdxiaochengxu.com/payment.php/payphp/wexiinapi/weexiinapi/weexinpay/weixinpay/weixinpay/paypay public poarply pappile( Geek',$ order_sn,1);PayRequest#39;,数据,功能(res){weixinjsbridge.log(res.err_msg); // alert(#39; err_code:#39;+res.err_code+#39; err_desc:#39;+res.err_desc+#39; err_msg:#39;+res.err_msg); // alert(res); if(res.err_msg == get_brand_wcpay_request:ok){arter(alert(成功付款!window.line.lecoct.href = http://m.blog.csdn.net/article/article/details/details/details/details/details/details/deTepears)? if(weixinjsbridge == undefined){if(document.addeventlistener){document.addeventlistener(#39; wixinjsbridgeready#39; jsapical document.attachevent.Attachevent.Attachevent.Attachevent(; weixinjsbridgeready#39; jsapicall);,jsapicall);9; OnWeixinjSbridGeready#39;,jsapicall); } else {jsapicall(); /脚本BR字体B付款的付款是1分 /跨度货币 /b /font br br br br br br b span 1点 /跨度钱也是爱 /b /font br br br br b b b b b b b b b b b but but bute ^ _ ^ _ ^ /button /button /p

,但您需要注意付款页面的URL。 我提到了TP中使用的重写模式,但是该链接类似于[http:// servername/home/home/blog/read/id/id/1]。在这一点上,微信付款将认为付款授权目录是[http:// servername/home/blog/read/id/id],但实际的授权目录是[http:// servername/home/home/blog/],因此将报告错误。 处理方法是在输入付款页面时重建URL,然后将其用于正常模式,即[http:// servername/home/home/blog/read吗?这是写入ID = 1]。

(3)支持成功回调

完成付款完成,[http://servername/payment.php/weexinapi/weixinpi/weixinpi/weixinpay/notify/notify/p>/p>/p>

/weixinpay/weixinpay/weixinpay/nocifie/nocifie/nociifie/noctifie/weix noctifie/weix:/winef>/wine:< {$ xml = $ globals ['http_raw_post_data'];   //此语句文件file_put_contents用于显示服务器返回的XML数据。您可以在测试后删除它。 file_put_contents('./ api/ wxpay/logs/log.txt',$ xml,file_append); // //将服务器返回的XML数据转换为数组$ data = xmltoArray($ xml); // Wechat Server $ data_sign = $ data = $ data ['sign''''''''''''''''''''; //符号不会参与签名algorithm ungorithm ungorithm ungorithm unset(nignset''''''''')。 $ sign = $ this - makeign($ data); //确定签名是否正确并确定付款状态(($ sign =================== $ data ['return_code'success'success')($ data ['result_code'code'ruccess_code''= ='success $ data ['OpenID'];rder_id,$ order_sn,$ openID,$ tocul_fee);  } else {$ result = false; //返回如果($ result){$ str ='xml return_code /return_code return_msg /return_msg /xml} return $ status $ facte to to nemeT Server。 }

出于安全原因,返回的签名必须被忽略:

/***生成签名*@return签名,此功能不会覆盖符号成员变量protighted wardice protive offected sakign($ data){//获取Wechat Paysect键quilt_once requiend_once app_root。 /Api/wxpay/lib/wxpay.api.php $ key = \ wxpayConfig :: key;  // $ data = array_filter($ data);  //签名步骤1:对字典顺序ksort($ data)中的参数进行排序。 $ string_a = http_build_query($ data);  $ string_a = urldecode($ string_a);  //签名步骤2:字符串之后添加键// $ config = $ this - config;  $ string_sign_temp = $ string_a。 键=。 $ key;  //签名步骤3:MD5加密$ sign = md5($ string_sign_temp);  //签名步骤4:所有字符将转换为大写$ result = strtoupper($ sign);  后退$结果; }

在这一点上,TP上的微信支付已经完成。 这是在官方SDK中实现的。 如果您不使用SDK,则可以使用更简单的方法。另请参阅:PHP实施微信支付(JSAPI付款)和退款(无需集成付款SDK)

以上是本文的全部内容。我希望这将帮助每个人学习。请注意PHP中国网站的相关内容!

Related Recommendations:

PHP Server integrates payments for Alipay apps

Wechat custom sharing capabilities based on thinkphp

Many free API interfaces: ready to use and cover life services APIs, financial technology APIs, enterprise industry and other related API services. 免费的API接口安全,安全地连接上游和下游,赋予数据API应用程序功能!

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:ThinkPHP实施微信支付(JSAPI付款)(PHP是微信支付) https://zhujicankao.com/147034.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » ThinkPHP实施微信支付(JSAPI付款)(PHP是微信支付)
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!