素材牛VIP会员

PC端(电脑端)微信扫码支付和支付宝在线支付(ThinkPHP3)

 所属分类:PHP/MySql-支付

 浏览:7018次-  下载:44次-  评论:57次-  更新时间:2019-08-31
PC端(电脑端)微信扫码支付和支付宝在线支付(ThinkPHP3)
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!   充值积分   充值会员   更多说明»
素材描述:本实例演示了PHP支付宝和微信扫码在线支付,支付成功后,在回调地址显示支付相关信息。

基础属性

  • 内核ThinkPHP3
  • 语言PHP
  • 数据库MySql
  • 兼容PC
  • 大小1.45MB
  • 源文件完全开源

详细介绍

操作步骤:

1、修改配置文件 Application/common/conf/config.php

$arr = array( 
    'DB_TYPE' => 'mysql', 
    'DB_HOST' => "localhost", 
    'DB_NAME' => 'demo', 
    'DB_USER' => "sucaihuo.com", 
    'DB_PWD' => "sucaihuo.com", 
    'DB_PORT' => 3306, 
    'DB_PREFIX' => '', 
);
2、修改支付宝和微信支付配置信息Application/home/conf/config.php
支付宝请到支付宝商户官网申请:https://b.alipay.com/?ynsrc=zhuzhanA,微信支付配置申请:https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN
$arr = array( 
    'URL_ROUTER_ON' => true, 
    /* 支付设置 */ 
    'payment' => array( 
        'alipay' => array( 
            // 收款账号邮箱 
            'email' => 'sucaihuo@126.com', 
            // 加密key,开通支付宝账户后给予 
            'key' => 'ggo084pb84gl43qnw82a39n9b7r1jq2m', 
            // 合作者ID,支付宝有该配置,开通易宝账户后给予 
            'partner' => '2088901006538525', 
            //收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号 
            'seller_id' => '2088901006538525', 
            //签名方式 
            'sign_type' => strtoupper('MD5'), 
            //字符编码格式 目前支持utf-8 
            'input_charset' => strtolower('utf-8'), 
            // 产品类型,无需修改 
            'service' => 'create_direct_pay_by_user', 
            // 支付类型 ,无需修改 
            'payment_type' => '1', 
        ), 
          'alipaywap' => array( 
            // 收款账号邮箱 
            'email' => 'sucaihuo@126.com', 
            // 加密key,开通支付宝账户后给予 
            'key' => 'ggo084pb84gl43qnw82a39n9b7r1jq2m', 
            // 合作者ID,支付宝有该配置,开通易宝账户后给予 
            'partner' => '2088901006538525', 
            //收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号 
            'seller_id' => '2088901006538525', 
            //签名方式 
            'sign_type' => strtoupper('MD5'), 
            //字符编码格式 目前支持utf-8 
            'input_charset' => strtolower('utf-8'), 
            // 产品类型,无需修改 
            'service' => 'alipay.wap.create.direct.pay.by.user', 
            // 支付类型 ,无需修改 
            'payment_type' => '1', 
        ), 
        'wechatjspai' => array( 
            'APPID' => 'wx422126b0b62bbfcfc', 
            'MCHID' => '1349825901', 
            'KEY' => '2088901006538525', 
            'APPSECRET' => '45843e705995a12106155f4c26f716dc', 
        ), 
    ) 
);
只要操作以上两个步骤,即可调通支付宝和微信在线支付,以下为支付代码教程。
订单生成代码如下: Application\Home\Controller\PayController.class.php
public function submit() { 
        $paytype = I("post.paytype"); 
        $data['order_money'] = I("post.money", 1);//订单金额 
        $data['order_no'] = date("YmdHis") . rand(1000, 9999);//订单号 
        $data['pay_type'] = $paytype; 
        $data['addtime'] = time(); 
        M("order")->add($data); 
        $site_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
        $dir = dirname($site_url); 
        $data['url_notify'] = $dir . "/Notify/pay_alipay";//回调地址 
        $data['url_return'] = $dir . "/Pay/order_detail";//返回地址 
        $data['title'] = "标题" . $data['order_no']; 
        $data['body'] = "主体内容" . $data['order_no']; 
        if ($paytype == 'alipay') { 
            $this->alipay_jump($data); 
        } elseif ($paytype == 'wechat_code') { 
            $data['url_notify'] = $dir . "/Notify/pay_weixin"; 
            $this->wechat_jump($data); 
        } 
    }
支付成功回调,更改订单状态为已付款: Application\Home\Controller\NotifyController.class.php

public function pay_weixin() { 
        $simple = json_decode(json_encode(simplexml_load_string($GLOBALS['HTTP_RAW_POST_DATA'], 'SimpleXMLElement', LIBXML_NOCDATA)), true); 
 
        $notify_data['order_no'] = $notify_data['trade_no'] = $simple['out_trade_no']; 
        $notify_data['third_id'] = $simple['transaction_id']; 
        $notify_data['pay_money'] = $simple['total_fee']; 
 
        $notify_data['payment_method'] = 'weixin'; 
 
//   $sign = $simple['sign']; 
//        file_put_contents('ac_simple.txt', json_encode($simple)); 
//        file_put_contents('ac_notify_data.txt', json_encode($notify_data)); 
 
        $this->order_pay($notify_data); 
    } 
 
    public function pay_alipay() { 
        $notify_data['order_no'] = $notify_data['trade_no'] = I("post.out_trade_no"); 
        $notify_data['third_id'] = I("post.trade_no"); 
        $notify_data['pay_money'] = I("post.total_fee"); 
        $notify_data['payment_method'] = 'alipay'; 
        $this->order_pay($notify_data); 
        file_put_contents('ac_notify_data.txt', json_encode($_REQUEST)); 
    } 
 
    /** 
     * 支付结果返回 
     */ 
    public function order_pay($data_order) { 
 
        $order_no = $data_order['order_no']; 
        if ($order_no == '') { 
            return false; 
        } 
        $order_info = M('order')->where(array("order_no" => $order_no))->find(); 
        if ($order_info['state'] == 0) { 
            $data_order['update_time'] = $_SERVER ['REQUEST_TIME']; 
            $data_order['state'] = 1; // 已付款 
            M('order')->where(array("order_no" => $order_no))->save($data_order); 
        } 
    }

回调不成功解决方案

1.首先检查回调地址是否正确 
2.用file_punt_contents调试回调地址

更新日志

2018-8-13 
1.添加订单表注释 
2.安装说明更新

相关素材 - 支付

讨论这个素材(57)回答他人问题或分享使用心得会奖励牛币

Co***ht  
2019年07月04日

非常感谢!非常实用!

回复
明***e  
2019年07月04日

非常实用。特别赞

回复
青***e  
2019年07月05日

正需要,刚好看到了

回复
wu***he  
2019年07月05日

有没有不用签约扫二维码支付源码

素材牛:不签约的不靠谱,毕竟用来收账的
回复
雷***y  
2019年07月07日

我的分太少了,分够了买一个

回复
黑***枯  
2019年07月07日

我的天啦,我的分太少了,分够了买一个

回复
踏***e  
2019年07月09日

挺好的,有点贵哦

回复
23***om  
2019年07月10日

submit这个文件没有,是要自己加还是怎么样呀,Thinkphp类型的有点搞不定呀

回复
记***6  
2019年07月10日

看着好厉害啊!

回复
訫***3  
2019年07月16日

扫码很不好搞啊 。。 这多版本 到底哪个好用啊

回复
wa***10  
2019年07月16日

我想把这个加入打我们项目当中去

回复
ch***am  
2019年07月18日

这个倒是蛮实用

回复
qq***qq  
2019年07月20日

这个源码 好好 我想呀

回复
越***0  
2019年07月23日

这个是thinkphP的代码 纯支持

回复
ji***ui  
2019年07月25日

兄弟们 这个我有了,很简单,太佩服牛哥了..

回复
Su***er  
2019年07月28日

特别管用,就是能降点分是最好

回复
pr***cy  
2019年07月28日

有用,收藏了

回复
Ja***jz  
2019年07月29日

如果要使用花呗支付 该怎么弄呢

回复
ma***kk  
2019年07月29日

这个 必须要了

回复
lu***ng  
2019年07月30日

困扰我很久的问题

回复
霸***空  
2019年07月31日

很实用的功能!

回复
青***0  
2019年08月01日

困扰我很久的问题

回复
34***86  
2019年08月01日

点个赞,等需要用的时候来下载。

回复
郑***y  
2019年08月01日

也是厉害啊

回复
风***0  
2019年08月03日

这正是我需要的系统

回复
in***ex  
2019年08月04日

这个功能比较实用啊

回复
km***04  
2019年08月05日

这个我也想要 , 只有默默的搬砖了

回复
on***de  
2019年08月08日

这个很酷很实用

回复
lu***ha  
2019年08月09日

非常给力

回复
野***7  
2019年08月10日

搬砖我搬砖 - - -

回复
阵***香  
2019年08月10日

找了很久终于找到了

回复
长***h  
2019年08月12日

努力努力,支持

回复
un***oo  
2019年08月16日

很强很好 很厉害 我需要

回复
Bu***nc  
2019年08月17日

这么贵!~

回复
风***Q  
2019年08月20日

正好需要,学习~~~

回复
ba***ag  
2019年08月20日

有用么~~~~~~~~

回复
郑***0  
2019年08月20日

微信支付正好需要

回复
Ho***95  
2019年08月23日

现在正在做这个微信支付

回复
mi***02  
2019年08月24日

收贵了。,。

回复
风***j  
2019年08月26日

thinkphp框架写的,而且要设置伪静态

回复
ni***07  
2019年08月26日

先标志一下

回复
朱***叶  
2019年08月27日

扫码支付很难呀

回复
贰***兄  
2019年08月28日

终于找到了

回复
青***e  
2019年08月29日

这个很好 等我分数多了再来

回复
co***ky  
2019年08月30日

两个支付方式都有 挺好的

回复
Sm***ty  
2019年08月30日

这个功能比较实用

回复
素材牛  SVIP
2019年08月31日

确实不错,今天再更新了一下说明文档

回复
qq***91  
2019年09月01日

这个功能比较实用

回复
古***场  
2019年09月02日

非常实用。特别赞

回复
qq***91  
2019年09月04日

特别赞

回复
qq***91  
2019年09月11日

确实不错

回复
qq***91  
2019年09月21日

这么贵

回复
qq***45  
2019年11月02日

非常实用。特别赞

回复
qq***29  
2020年07月06日
qq***15  
2020年07月22日

正需要这个

回复
do***lf  
2020年09月10日

正需要这个

回复
qq***75  
2020年12月10日

非常实用。特别赞

回复
qq***20  
2021年05月11日

谢谢分享啊

回复
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的牛币余额:0 已下载次数:44
所需牛币:200 开始下载

牛币获取:签到、评论、充值    » 在线充值(10牛币=1元)