天天看点

PHP处理-微信支付

需要到这些地方去扒参数

       1、登录微信公众号管理后台mp.weixin.qq.com,在左侧菜单栏找到开发者中心,点开如下图就能看到AppID和AppSecret:

PHP处理-微信支付
PHP处理-微信支付

   点开weixinpay那封邮件就可以看到这些账号信息,把附件中pem格式的文件下载保存到web服务器上,请记下文件绝对路径,在下面代码中需要用到:

PHP处理-微信支付

         3、登录微信商户平台(mch.weixin.qq.com),去设置商户支付密钥Key:

PHP处理-微信支付

        4、登录微信公众号管理后台mp.weixin.qq.com,设置支付配置,支付测试,支付白名单

PHP处理-微信支付

三、找到参数来配置该个类class WxPayConf

<code>class</code> <code>WxPayConf</code>

<code>{</code>

<code>//=======【基本信息设置】=====================================</code>

<code>//微信公众号身份的唯一标识。审核通过后,在微信发送的邮件中查看</code>

<code>const</code> <code>APPID = </code><code>"填上二、1中看到的AppID"</code><code>;</code>

<code>//受理商ID,身份标识</code>

<code>const</code> <code>MCHID = </code><code>"填上二、2中看到的MCHID"</code><code>;</code>

<code>//商户支付密钥Key。审核通过后,在微信发送的邮件中查看(如果没有,可以登录微信商户平台去设置)</code>

<code>const</code> <code>KEY = </code><code>"填上二、3中设置的密钥"</code><code>;</code>

<code>//JSAPI接口中获取openid,审核后在公众平台开启开发模式后可查看</code>

<code>const</code> <code>APPSECRET = </code><code>"填上二、1中看到的AppSecret"</code><code>;</code>

<code> </code> 

<code>//=======【JSAPI路径设置】===================================</code>

<code>//获取access_token过程中的跳转uri,通过跳转将code传入jsapi支付页面</code>

<code>const</code> <code>JS_API_CALL_URL = </code><code>"http://www.xxx.com/wxpay/js_api_call.php"</code><code>;</code>

<code>//=======【证书路径设置】=====================================</code>

<code>//证书路径,注意应该填写绝对路径</code>

<code>const</code> <code>SSLCERT_PATH = </code><code>"填上二、2中下载的pem文件放在服务器上的路径"</code><code>;</code>

<code>const</code> <code>SSLKEY_PATH = </code><code>"填上二、2中下载的pem文件放在服务器上的路径"</code><code>;</code>

<code>//=======【异步通知url设置】===================================</code>

<code>//异步通知url,商户根据实际开发过程设定</code>

<code>const</code> <code>NOTIFY_URL = http:</code><code>//www.xxxx.com/wxpay/notify_url.php;</code>

<code>}</code>

四、JSAPI支付

  微信JS API只能在微信内置浏览器中使用,其他浏览器调用无效。 

   include_once("WxPayHelper/WxPayHelper.php");

<a href="http://blog.51cto.com/xuqin/1588646#">expand source</a>

PHP处理-微信支付
PHP处理-微信支付

五、NATIVE支付

   采用了官方提供的demo,native支付模式2完成

    include_once("WxPayHelper/WxPayHelper.php");

PHP处理-微信支付
PHP处理-微信支付
PHP处理-微信支付
PHP处理-微信支付
PHP处理-微信支付
PHP处理-微信支付

本文介绍微信支付下的jsapi实现流程

微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版。V3版的微信支付没有paySignKey参数。v2的相关介绍请参考方倍工作室的其他文章。本文介绍的微信支付v3。

JSAPI 支付前需要调用 登录授权接口获取到用户的 Openid 。所以需要做一次授权,这次授权是不弹出确认框的。

其实质就是在用户访问

时跳转到

以此来获得code参数,并根据code来获得授权access_token及openid

在微信支付的Demo中,其代码为

这一步的最终结果就是获得了当前用户的openid

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口

统一支付中以下参数从配置中获取,或由类自动生成,不需要用户填写

在JSAPI支付中,另外填写以下参数

其他为选填参数

这些参数最终组成了这样的xml数据,

将这些数据提交给统一支付接口

将获得返回 如下数据

其中包含了最重要的预支付ID参数,prepay_id,值为 

前面的准备工作做好了以后,JS API根据prepay_id生成jsapi支付参数

生成代码如下

生成的json数据如下

在微信浏览器中调试起js接口,代码如下

当用户点击“贡献一下”按钮时,将弹出微信支付插件,用户可以开始支付。

支付成功后,通知接口中也将收到支付成功的xml通知

参考地址:

<a href="http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html" target="_blank">http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html</a>

<a href="http://www.111cn.net/phper/php-cy/71237.htm" target="_blank">http://www.th7.cn/Program/php/201410/296997.shtml</a>

   本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1588646,如需转载请自行联系原作者