- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于坑爹的微信支付接口V3
最近在做一个关于微信支付的功能,涉及到了微信支付接口,原以为此接口也像支付宝一样,简单易用,当从官网上下载了Demo之后,才发现原来一个为客户展示的Demo也可以做到让一个技术如此的抓狂,在百度上有哪些信誉好的足球投注网站了很多相关的资料,都没有找到有效的解决办法。没办法,只能靠自己了,经过千山万水,艰难跋涉,终于调试通过了,废话不多说了,下面把调试的思路和附带的代码贴出来,也算是为大家提供一些参考吧!本人下载的是V3的Demo代码,压缩包文件名为【WxpayAPI_php_v3.zip】,解压之后得到图2的文件夹。具体每个文件夹的里的文件不用多说,Demo里面配有相关文档介绍,即使没有,百度上面也可以有哪些信誉好的足球投注网站得到。图1、Demo压缩包名称图2、Demo解压之后的文件夹按照Demo中提供的流程进行对应的参数配置(这里不进行重述)。下面进行Demo调试,噩梦也就开始了。把Demo上传到自己服务器上,原封不动的进行它们自己的案例测试,没有任何问题,但是把参数修改为本商户参数之后,进行测试,就一直调试不通,不能显示支付的页面,进行检查,把对应的下列代码进行修改,就可以进入到支付页面设置。修改1中是把SSL效验关闭,因为我的服务器使用的是虚拟空间,不能进行SSL安装,所以只能采取此类办法,如果能按照SSL的VPS或是主机的,还是建议按照SSL比较好。问题2中是没有进行回调网址的默认设置,但是回调函数中又有这样的逻辑需要调用回调默认值,所以写出来比较好。本人打不开支付页面的原因应该是SSL安全验证书没有的问题导致的,当停用就可以了。图3、修改默认数据以下开始就是我碰到的几个最头疼的问题:问题1、不知道怎样传递自定义参数,比如商户自己的out_trade_no(交易号)、totale_fee(付款价格)等。问题2、回调函数是如何运作的,在哪个位置进行自定义代码的添加(比如像自己的数据库进行数据插入、修改和删除)。下面是我的解决办法,我不排除有更好的办法,但是鉴于本人技术能力有限,也只能做到此程度,供大家参考借鉴。解决1:因为调用支付页面的url网址不能调价任何GET参数(添加之后就打不开支付页面),所以只能有POST方式。支付页面调用的是文件夹example-jsapi.php文件,根据流程,可以看出它一开始就创建了JsApiPay()类的工具对象$tools,然后进行用户$openId的调用,通过对GetOpenid()进行微信OAuth2.0授权机制来进行用户Openid的调用,相当于每次此函数都调用了两次才能得到Openid,要是不了解授权机制操作流程的可以看一下微信相关的技术文档,讲的还是比较清楚了。因为调用jsapi窗口文件时,就直接跳转到授权机制网页,而且还是两次,所以在jsapi文件中是获取不到任何的GET和POST参数的。而我们要传递的自定义参数可以在此函数中进行添加。在OAuth2.0授权机制网址中存在了一个state参数,赋值为STATE,我们可以把STATE改为我们想要的参数,看修改后的为图7,我传递的是out_trade_no(交易号)参数。利用json进行传递,到jsapi文件中可以利用json_decode进行解码,以此就可以对你传递的参数进行控制了。图4、支付页面链接网址图5、jsapi文件部分代码图6、获取用户Openid函数图7、修改STATE后的代码图8、json解码解决2:当问题1解决完成之后,其实问题2就比较好处理了。当付款完成之后,会调用设置好的notify.php,可以通过demo设置的log日志来进行观察,实际是调用了notify.php文件中的NotifyProcess($data, $msg)和Queryorder($transaction_id)函数,本人是通过Queryorder($transaction_id)函数中当返回“SUCCESS”时,进行自定义代码处理。自定义代码的处理上存在一个问题,就是Queryorder($transaction_id)函数不能修改任何形参,这样就堵死了你的任何数据传递到此函数中,后来看到Demo写的LOG日志类,发现采用static静态方式是一个不错的选择,这样无论你需要到什么数据和对象,都可以在自己的静态类中进行定义和调用。当回调页面中收到“SUCCESS”回复之后,jsapi.php页面中就会触发事件,按照图10,进行页面的跳转即可。图9、notify.php回调函数中自定义代码添加图10、jsapi.php页面中触发的jsApiCall事件功能做到此处,基本也就完成了本人的需求,至此下次也再没有过多研究。在此多说几句,此次的项目我申请了3个支付接口:支付宝、财付通和微信支付,本人的感觉,无论是客服的态度,技术的对工作的用心程度来看,支付宝都比财付通、微信支付要好得多,对
您可能关注的文档
- 会计电算化教案-用友软件操作常识.doc
- 会计电算化教案-总账系统概述.doc
- 会计电算化教案第二章.doc
- 会计电算化实验操作资料.doc
- 会计电算化教案-系统管理的操作.doc
- 会计电算化概述习题.doc
- 会计电算化测试卷(一)答案.doc
- 会计电算化真题1.doc
- 会计电算化期末论文.doc
- 会计电算化简答和论述题.doc
- 2024-2025学年小学科学二年级上册冀人版(2024)教学设计合集.docx
- 2024-2025学年高中生物学选修1《生物技术实践》人教版教学设计合集.docx
- 2024-2025学年小学科学三年级上册教科版(2024)教学设计合集.docx
- 2024-2025学年高中信息技术(信息科技)必修2 信息系统与社会浙教版(2019)教学设计合集.docx
- 2024-2025学年初中化学八年级全一册人教版(五四学制)教学设计合集.docx
- 2024-2025学年初中数学八年级下册人教版(五四学制)教学设计合集.docx
- 2024-2025学年初中心理健康七年级闽教版教学设计合集.docx
- 2024-2025学年小学数学二年级下册人教版(2024)教学设计合集.docx
- 2024-2025学年高中化学选修6 实验化学鲁科版教学设计合集.docx
- 2024-2025学年小学科学五年级上册苏教版(2024)教学设计合集.docx
文档评论(0)