网站接入微信支付,小程序接入微信支付

官方文档

接入的官方文档https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

腾讯客服指引https://kf.qq.com/faq/170116AziqYV1701162eyAzA.html

登录平台连接
公众号https://mp.weixin.qq.com/
微信商户https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F

准备工作

1、有一个认证过的公众号,认证费是300元/次,没认证下面就走不下去
2、去公众平台,申请微信支付
3、开户成功(包含验证,签署协议)

第一步:下载sdk和demo

下载地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1

注意:
1、下载之后,如果你的代码是原生,那可以直接用,路径注意就好
2、下载之后,如果代码是用了框架,那些代码是不可以直接用的,因为命名空间会错
3、文件说明:在这里插入图片描述
4、部分功能需要下载证书:https://pay.weixin.qq.com/index.php/account/api_cert

第二步:整理代码(框架)

把lib下的代码都拷贝一份放在你自己的逻辑层,这里是为了能正常调用,定义正确的命名空间,文件的命名请根据框架的规则。(如果不是在每个调用的地方都引入,就会无法调用,所有这里另外拎出来,再调用会更方便。)

在这里插入图片描述

第三步:必须配置信息

    private $AppId;  //微信公众号信息配置,绑定支付的APPID (公众号)
    private $MerchantId; //商户号  (微信商户平台)
    private $NotifyUrl; //支付回调url  (自己)
    private $Key;     //商户支付密钥  (微信商户平台)
    private $AppSecret;//公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置)  (公众号)

第四步:支付代码

    /**
     * 测试支付,直接显示二维码
     */
    public function pay()
    {
        $notify = new NativePay();

        //这些要写到对应的逻辑层
        $input = new \WxPayUnifiedOrder();
        $input->SetBody("支付说明");                                                      //支付说明
        $input->SetAttach("5555555556666");                                          //携带订单的自定义数据
        $input->SetOut_trade_no("47378fd" . date("YmdHis"));                //系统内部的订单号,32个字符内
        $input->SetTotal_fee("200");                                                //这里是2元
        $input->SetTime_start(time());                                               //订单生成时间,一般是当前时间
        $input->SetTime_expire(date("YmdHis", time() + 1200));      //订单失效时间,日期格式,
        $input->SetGoods_tag("测试");                                           //商品标记
        $input->SetNotify_url("http://xxx.cn/xx/xx/call_back");//回调地址
        $input->SetTrade_type("NATIVE");  //小程序用'JSAPI';                                          //网站二维码,写死  NATIVE
        //$input->SetOpenid($openId);//小程序需要,网站不需要
        $input->SetProduct_id("1");                                                 //二维码中包含的商品ID

		//这里你们可以直接全局搜GetPayUrl方法
        $result = $notify->GetPayUrl($input); 
        $url = $result["code_url"]; //生成二维码链接

		//这里你们可以全局搜  \QRcode::png($url); 
        $qrcode = new Qrcode();
        $qrcode->get($url);    //这里拼成图
    }

注意:1、GetPayUrl方法我是整理过放在另一文件,这个方法下载的文档中是有的,可以直接用它的
2、连接拼成图,用的是里面自带的 \QRcode::png($url); 方法,但是这里要注意,如果要直接生成图片,这里要加个exit();

第五步:退款代码

	/**
	transaction_id :微信支付单号
	total_fee:微信支付总价
	refund_fee:退款金额
    **/
    //申请退款
    public function refund($params)
    {
        $transaction_id = $params["transaction_id"];
        $total_fee = bcmul($params["total_fee"],100,0); //这里必须乘100,因为它的单位是分
        $refund_fee = bcmul($params["refund_fee"],100,0);
        $input = new \WxPayRefund();
        $input->SetTransaction_id($transaction_id);
        $input->SetTotal_fee($total_fee);
        $input->SetRefund_fee($refund_fee);

        $config = new WxPayConfig();
        $input->SetOut_refund_no("gr23rkjgir".date("YmdHis"));
        $input->SetOp_user_id($config->GetMerchantId());
        return WxPayApi::refund($config, $input);
    }

注意:
1、其他api可以查看文档用到的方法和链接
2、example文件夹里面的文件有很多案例方法,都可以借鉴。
3、微信支付商户,国内版本已经取消了账号密码登录

结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值