《六》微信支付

微信支付官网:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F

微信支付参考文档:https://github.com/overtrue/wechat/wiki/%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98

一、获得支付权限

这里写图片描述

二、配置授权页面

这里写图片描述

这里写图片描述

三、配置支付授权页面

这里写图片描述

四、详细流程

点击《确认下单》去生成订单,然后跳到确认支付页面。

  • 列表内容

《确认下单》访问的控制器:

<?php namespace App\Http\Controllers\home;


use App\Http\Requests;
use App\Http\Controllers\Controller;
use Overtrue\Wechat\Payment;
use Overtrue\Wechat\Payment\Business;
use \Overtrue\Wechat\Payment\Order as WxOrder;
use Overtrue\Wechat\Payment\UnifiedOrder;


class ShopController extends Controller {
    /**
     * @生成订单方法。
     */
    public function create(){
        //先订单入库处理
        //.......
        //然后渲染支付页面
        return view('done',['payconfig'=>$this->pay()]);
    }
    public function pay(){
        //1、做一个交易对象
        $business=new Business('APP_ID','APP_SECRET','商户id','商户支付key');
        //2、做一个订单对象
        $order=new WxOrder();
        $order->body='test body';
        $order->out_trade_no='订单号';
        //单位为"分",字符串类型
        $order->total_fee='金额';
        $order->openid='客户端的openid';
        //此 url 做修改订单状态操作,记得要关闭 csrf
        $order->notify_url='支付成功的回调 url';
        //3、统一下单
        $unifiedOrder=new UnifiedOrder($business,$order);
        //4、生成支付配置文件
        $payment= new Payment($unifiedOrder);
        //5、生成支付的 js 对象
        return $payment->getConfig();
    }
}
  • 这里写图片描述

《支付按钮》是在 done.blade.php 页面,代码如下:

<input type='button' value='立即支付' onclick='WXPayment();' />
<script>
    function WXPayment() {
        if( typeof WeixinJSBridge === 'undefined' ) {
            alert('请在微信在打开页面!');
            return false;
        }
        WeixinJSBridge.invoke('getBrandWCPayRequest', {!!$payconfig!!},function(res){
            switch(res.err_msg) {
                case 'get_brand_wcpay_request:cancel':
                    alert('用户取消支付!');
                    break;
                case 'get_brand_wcpay_request:fail':
                    alert('支付失败!('+res.err_desc+')');
                    break;
                case 'get_brand_wcpay_request:ok':
                    alert('支付成功!');
                    break;
                default:
                    alert(JSON.stringify(res));
                    break;
            }
    }
    );
    }
</script>

支付成功后会跳转到回调页面,回调页面可以作修改订单状态等处理。

发布了126 篇原创文章 · 获赞 23 · 访问量 11万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览