微信开发中如何实现微信支付

  介绍

这篇文章给大家分享的是有关微信开发中如何实现微信支付的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>一、微信后台设置

1。添加测试授权目录和测试白名单:

在微信后台,设置测试授权目录,如xxx.sinaapp.com/example/,测试白名单中添加你的微信号。
注意,这里的“个人微信号”既不是qq号也不是个人昵称。而是登录微信后在“我”的界面中的“微信”号字段的字符串。
支付授权目录设不设无所谓,因为我们只是测试。

2。列表内容

设置网页授权域名:
在“开发者中心/接口权限表/网页账号/网页授权获取用户基本信息”中进行设置。网页授权域名设置为测试服务器的域名,如:xxx.sinaapp.com,不需要http://?/p>

二、商户平台设置

1。下载证书

在“账户设置/API安全/API证书”中下载。需要用到管理员的手机验证码。下载后的进行解压缩,我们需要用到的是apiclient_key.pem和apiclient_cert.pem .

2 .生成支付关键

在“账户设置/API安全/API密钥”中进行设置。支付的关键将在支付时用的到,这个值就是源代码配置文件中关键的常量。

三、使用官方V3.7的示例代码

1,在Wxpay.pub.config.php修改配置,主要的是:

,,,,const  APPID ,,,,,,,,,,,,,,,,//公众号中“开发者中心”看到的AppID   ,,,const  MCHID ,,,,,,,,,,,,,,,,,,,,//微信支付商户资料审核成功邮件中的商户号   ,,,const  KEY ,,,,,,,,,,,,,,,,,,//你在商户平台中设置的支付的关键   ,,,const  APPSECRET ,,,,,,,,,,,,//公众号中“开发者中心”看到的AppSecret      ,,,const  JS_API_CALL_URL ,,,,,,//设置这个url,可在此页面中获得用户的openid。      ,,,//证书路径,注意应该填写绝对路径   ,,,const  SSLCERT_PATH ,,,,,,,,,//, apiclient_cert.pem文件url   ,,,const  SSLKEY_PATH ,,,,,,,,,,,,,,//, apiclient_key.pem文件url,如“/证书/,apiclient_key.pem”   ,,,const  NOTIFY_URL ,,,,,,,,,,,,,,,//异步通知url,可使用演示中的notify_url。php

2,修改官方代码中的错误:
如果出现“curl_setopt()预计参数2长”错误,是因为WxPayPubHelper.php中有几个地方将“curl_setopt”拼错了,拼成“curl_setop”,将其修改后即可。如果出现“curl_close(): 11”不是一个有效的,则是因为错误地关闭了一个已经关闭的curl会话,可以将curl_close()代码加上如下判断:

如果(方法(ch)美元,==,& # 39;资源# 39;),curl_close (ch);

3,官方演示直接跑不通,我们需要自己搞定它。首先中索引。php中增加一个链接:

& lt; a  https://www.yisu.com/zixun/href=" pay.php ">获取openid

3,然后写一个工资。php页面,用于获取用户openid并发起支付:

& lt; php ?/* *   ,* JS_API支付演示   ,*====================================================,*在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。   ,*成功调起支付需要三个步骤:   ,*步骤1:网页授权获取用户openid   第二,*步骤:使用统一支付接口,获取prepay_id   第三,*步骤:使用jsapi调起支付   ,*/include_once  (“WxPayPubHelper.php");      $ jsApi =, new  JsApi_pub ();//,=========步骤1:网页授权获取用户openid============//,通过代码获得openid   if (!,收取($ _GET[& # 39;代码# 39;])),{   ,//触发微信返回码代码   美元,美元url =, jsApi→createOauthUrlForCode (WxPayConf_pub:: JS_API_CALL_URL);   ,头(“位置:url"美元;);   },{else    ,//获取代码码,以获取openid=,美元code  $ _GET[& # 39;代码# 39;];   美元,美元jsApi→setCode(代码);   美元,美元openid =, jsApi→getOpenId ();   }      时间=美元goods “test";//,使用统一支付接口   $ unifiedOrder =, new  UnifiedOrder_pub ();   美元unifiedOrder→setParameter (“openid",,“openid"美元;);,//,用户openid   美元unifiedOrder→setParameter (“body",,“goods"美元;);,//,商品描述   ,//自定义订单号,此处仅作举例=美元timeStamp 拖延时间();   $ out_trade_no =, WxPayConf_pub: APPID 只“timeStamp"美元;,,//,商户订单号   美元unifiedOrder→setParameter (“out_trade_no",,“out_trade_no"美元;);   $ price =,“1”;   美元unifiedOrder→setParameter (“total_fee",,“price"美元;);,//,总金额   美元unifiedOrder→setParameter (“notify_url",, WxPayConf_pub:: NOTIFY_URL);,//,通知地址   美元unifiedOrder→setParameter (“trade_type",,“JSAPI");,//,交易类型      美元$ prepay_id =, unifiedOrder→getPrepayId ();//,=========步骤3:使用jsapi调起支付============美元jsApi→setPrepayId ($ prepay_id);      美元$ jsApiParameters =, jsApi→getparameter ();   echo  jsApiParameters美元;      比;      & lt; html>   & lt; head>   & lt; meta  http-equiv=癱ontent-type",内容=皌ext/html; charset=utf-8",/比;   & lt; meta  name=皏iewport",内容=翱矶?设备宽度,初始=1.0“,/比;   & lt; title>微信安全支付& lt;/title>      & lt; script 类型=拔谋?javascript"比;      ,//调用微信JS  api 支付   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

微信开发中如何实现微信支付