微信JSAPI支付PHP源码

本文详细介绍了微信JSAPI支付的PHP实现过程,包括支付授权目录设置、商户平台API秘钥配置、PHP代码示例及异步回调处理。提供源码帮助开发者避免常见问题。
摘要由CSDN通过智能技术生成

微信支付,开发过的小朋友都踩过坑,在此附上jsapi源码,希望帮到小伙伴们。

1、支付授权目录设置

在这里插入图片描述
2、公众平台,用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。
在这里插入图片描述

3、商户平台API秘钥

在这里插入图片描述

4、PHP代码

控制器:

<?php
namespace app\wxpay\controller;


class JsapiController
{
    public $mchid = '00000000';          //微信支付商户号 PartnerID 通过微信支付商户资料审核后邮件发送
    public $appid = '00000000';  //微信支付申请对应的公众号的APPID
    public $appKey = '00000000';   //微信支付申请对应的公众号的AppSecret
    public $apiKey = '00000000';   //https://pay.weixin.qq.com 商户平台API秘钥
    public function jspay()
    {
        $openId = $this->GetOpenid();      //获取openid
        if(!$openId) exit('获取openid失败');
        $outTradeNo=time().rand(10000,99999);
        $payAmount=0.01;
        $orderName = 'test-test';
        $notifyUrl = 'http://www.test.net/wxpay/notify/index';     //付款成功后的回调地址(不要有问号)
        $payTime = time();
        $jsApiParameters = $this->createJsBizPackage($openId,$payAmount,$outTradeNo,$orderName,$notifyUrl,$payTime);
        $jsApiParameters = json_encode($jsApiParameters);
        $this->assign('jsApiParameters',$jsApiParameters);
        $this->assign('payAmount',$payAmount);
        return $this->fetch('jspay');
    }
    /**
     * 通过跳转获取用户的openid,跳转流程如下:
     * 1、设置自己需要调回的url及其其他参数,跳转到微信服务器https://open.weixin.qq.com/connect/oauth2/authorize
     * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code
     * @return 用户的openid
     */
    public function GetOpenid()
    {
        //通过code获得openid
        if (!isset($_GET['code'])){
            //触发微信返回code码
            $baseUrl = urlencode('http://www.test.net/wxpay/jsapi/jspay');
            $url = $this->__CreateOauthUrlForCode($baseUrl);

            Header("Location: $url");
            exit();
        } else {
            //获取code码,以获取openid
            $code = $_GET['code'];
            $openid = $this->getOpenidFromMp($code);
            return $openid;
        }
    }

    /**
     * 通过code从工作平台获取openid机器access_token
     * @param string $code 微信跳转回来带上的code
     * @return openid
     */
    public function GetOpenidFromMp($code)
    {

        $url = $this->__CreateOauthUrlForOpenid($code);
        $res = self::curlGet($url);
        //取出openid

        $data = json_decode($res,true);
        $this->data = $data;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值