资讯专栏INFORMATION COLUMN

微信支付PHP SDK之微信公众号支付代码详解

jimhs / 2794人阅读

摘要:微信支付接口下载官方文档参考配置公众号信息我们先进行测试,所以先把测试授权目录和测试白名单添加上。在申请微信支付后发来的邮件中可以找到,则根据邮件提示拜访官方我们首先需要的是支付。

微信php支付接口demo下载
https://pay.weixin.qq.com/wik...

官方文档参考
https://pay.weixin.qq.com/wik...

1. 配置公众号信息

我们先进行测试,所以先把测试授权目录和 测试白名单添加上。测试授权目录是你要发起微信请求的哪个文件所在的目录。
例如jsapi 发起请求一般是jsapi.php所在目录 为测试目录,测试白名单即开发人员的微信号。
正式的支付授权目录不能和测试的一样否则会报错。不填写或者填错授权目录以及测试白名单都会报错。
报错样例:
NaNsystem:access_denied

2. 配置 lib/WxPay.Config.php文件

最主要配置一下四项:
const APPID = "";
const MCHID = "";
const KEY = "";
const APPSECRET = "";
APPID 和 APPSECRET都可以在微信后台中找到。
MCHID 在申请微信支付后发来的邮件中可以找到,KEY 则根据邮件提示

3. 拜访官方demo

我们首先需要的是 JSAPI支付。但是看代码 index.php 最下面的链接。他默认是个demo的链接,改为我们自定义的即可
当然你也可以直接写死为自己的访问链接。


官方给的demo整个思路就很明朗了
如果说要设计成api接口
可以参考一下个人的

api开发思路:
引入:
这三个文件

require __DIR__ . "/wechat_pay/example/WxPay.JsApiPay.php";

require __DIR__ . "/wechat_pay/example/log.php";

require __DIR__ . "/wechat_pay/lib/WxPay.Api.php";

api接口设置:

//请求支付参数

case 10098:

 $openid= isset($_REQUEST["openid"])?$_REQUEST["openid"]:error();

 $SetTotal_fee= isset($_REQUEST["SetTotal_fee"])?$_REQUEST["SetTotal_fee"]:error();

 wx_pay($openid,$SetTotal_fee);

break;
这里SetTotal_fee是支付的金额 openid是密钥

//发起支付的函数

function  wx_pay($openid,$SetTotal_fee){
//初始化日志
$logHandler= new CLogFileHandler("../logs/".date("Y-m-d").".log");
$log = Log::Init($logHandler, 15);
//①、获取用户openid
$tools = new JsApiPay();
$openId =$openid;
//②、统一下单
$input = new WxPayUnifiedOrder();
$input->SetBody("这里写产品名字");
$input->SetAttach("test");
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
$input->SetTotal_fee($SetTotal_fee*100);
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("xxxx/jsapi.php");//这里写发起支付的页面
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
echo $jsApiParameters;
}

前端调用:

function jsApiCall()    
{    
WeixinJSBridge.invoke(    
"getBrandWCPayRequest",    
,
function(res){    
WeixinJSBridge.log(res.err_msg);//存储异常    
alert(res.err_code+res.err_desc+res.err_msg); 
//后面可以写上执行失败的东西
}
);
}

function callpay()   
{
if (typeof WeixinJSBridge == "undefined"){
    if( document.addEventListener ){
        document.addEventListener("WeixinJSBridgeReady", jsApiCall, false);
    }else if (document.attachEvent){ 
        document.attachEvent("WeixinJSBridgeReady", jsApiCall); 
        document.attachEvent("onWeixinJSBridgeReady", jsApiCall);
    }
}else{
        jsApiCall();
} 
}

如果这篇文章对你有用,可以点个赞或者是收藏,算是对作者的鼓励~

另附上小弟网站。。。www.entercode.cn 推广一波...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30629.html

相关文章

  • 支付开发填坑记之微信支付

    摘要:前者集成在中,后者主要是为微信用户提供了另一种支付方式需要在微信的内置浏览器中打开页面,再调起微信支付。步骤商户后台收到用户支付单,调用微信支付统一下单接口。拿到所有参数后,就可以在页面中发起微信支付的请求了。 微信支付,支持的支付方式比较多:有扫码支付,刷卡支付,APP支付和公众号支付。其中,APP和网站上最常用的就是APP支付和公众号支付。前者集成在APP中,后者主要是为微信用户提...

    zhunjiee 评论0 收藏0
  • spring——微信开发

    摘要:网页授权登陆申请公众号测试号也行申请测试号链接申请后得到和配置需要可以外网访问的域名,没有的话可以搞个内网穿透开发使用第三方的进行开发,避免重复造轮子,微信的开发文档如下第三方流程构造链接,获取到,拿到配置接口调用跳转到授权链接跳转链接配置 网页授权登陆 申请公众号(测试号也行) 申请测试号链接 showImg(https://segmentfault.com/img/bVbwfDh?...

    苏丹 评论0 收藏0
  • 浅析微信支付微信支付简单介绍(小程序、公众、App、H5)

    摘要:本文是浅析微信支付系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处。浅析微信支付前篇大纲微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。目前微信支付支持手机系统有苹果安卓和。 本文是【浅析微信支付】系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处。 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下。 浅析微信支...

    shadowbook 评论0 收藏0
  • 200行代码实现微信支付-公众支付,不再踩坑,附:demo

    摘要:开发微信支付需要认证服务号并且已经开通微信支付,获得微信支付商,设置了的。我看到了一个作者写的源码,还不错,我简单进行优化了,只有多行代码就可以实现公众号支付。要注意,订单标题不能为中文,否则会提示参数错误什么的。 开发微信支付需要认证服务号并且已经开通微信支付,获得微信支付商ID,设置apikey了的。 官方给了公众号支付的php源码SDK但是这个SDK文件非常多,源码乱七八糟的,真...

    lindroid 评论0 收藏0
  • yii2嵌入微信公众支付

    摘要:微信公众号支付就是微信商城的一种支付方式,微信支付随着微信的推广使用也被广泛应用。微信公众平台的地址是。代码分析我们需要获取到关注微信公众号的人的。回调的方法使用以上就是我的微信支付。 序言 随着微信被越来越多的人使用,微信商城成为如今的热门。每一个商城都需要有自己的支付方式,微信商城也不例外。微信公众号支付就是微信商城的一种支付方式,微信支付随着微信的推广使用也被广泛应用。今天我主要...

    Ajian 评论0 收藏0

发表评论

0条评论

jimhs

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<