微信小程序 实现支付宝沙盒支付 thinkphp5+php

21 篇文章 1 订阅
17 篇文章 2 订阅

wxml

<web-view src="{{url}}"></web-view>

js

    onLoad: function (options) {
        let url='http://www.yk.com/pay'
        this.setData({
            url
        })
    },

route

\think\Route::get('pay','index/PayController/index');

\think\Route::get('notify_url','index/PayController/notify');

\think\Route::get('return','index/PayController/return');

controller

<?php

namespace app\index\controller;


use Yansongda\Pay\Pay;
use Yansongda\Pay\Log;

class PayController
{
    protected $config = [
        'app_id' => '2021000118622215',
        'notify_url' => 'http://www.yk.com/notify_url',
        'return_url' => 'http://www.yk.com/return',
        'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr4lcgg5ok5cYbG1T7b42mFX6gQp2m5UenB2yt4Ze+JwFhl1tJMOdUyVQ89fmlDkfZIDzwl8jXi+txpCZCm07M+Zqbk7jtQTsaBjwT6OjGwrGhVP1TxwnXOkMSlBANhjWzTxFQssTZjp4pmM+scEWuznN0YZI9jhEMdDkv2xbx2Y3XyqVDaxjX7QvoQ5+/b+YV3lyW8GNxXbOGaHdsh190UzYJxOYEhMmQQQF/nCNGR/ckLsBjzl3xTr3trscOB2KS+wUvk0m1vdNx7HVwU3TVZ5bHxUmKqlgXzxXmXjum4qIfvCMPHNn8ZZfrmWPkxjWLP2HH3mwVwNmfrfKIe1eFwIDAQAB',
        // 加密方式: **RSA2**
        'private_key' =>'MIIEpAIBAAKCAQEAr4lcgg5ok5cYbG1T7b42mFX6gQp2m5UenB2yt4Ze+JwFhl1tJMOdUyVQ89fmlDkfZIDzwl8jXi+txpCZCm07M+Zqbk7jtQTsaBjwT6OjGwrGhVP1TxwnXOkMSlBANhjWzTxFQssTZjp4pmM+scEWuznN0YZI9jhEMdDkv2xbx2Y3XyqVDaxjX7QvoQ5+/b+YV3lyW8GNxXbOGaHdsh190UzYJxOYEhMmQQQF/nCNGR/ckLsBjzl3xTr3trscOB2KS+wUvk0m1vdNx7HVwU3TVZ5bHxUmKqlgXzxXmXjum4qIfvCMPHNn8ZZfrmWPkxjWLP2HH3mwVwNmfrfKIe1eFwIDAQABAoIBAD/tG1Z13tnZDdj227jaK9HAhhEWeWlhnhsmqZ4yfkW1tEFhpszbvGC6V0fmWZ+jSe51E9C2iw/S90s3/7QPYZ8eC6aObljPKTUj1+h45H6FpxSJJe4gh6lLaeFqZmgNFbT6fRK9GByDsMqPnBZqBlg6zdy/NbUNerBVreiUkrwDv0leb+i4ufpIoEDUD8qJzJT4e50d6bL04iYwPSYOnSZJKmfZ0QN+gBxUlBCncmUiIwX+as2wdNaNGVwYvbAsU/xa+A5wP0HAGeokznsRYOLPCm+fTCiwmbUGfcgugRTipToo+qvSA8t6DZQ1DaP6IR7D8W4vtycrusv5USGmzvECgYEA7R7TJ8k0IKcL1RUsk7Xxn2oET7jJa41zyjFFwykOwUH9bTiIvk8cpEElZJQaofRK7KwQ3sG2K0VrFxOWsJWTmC0gDcYY7ygAHuQ3uphFOD6VSc3H7uGIHNlAcz4XUbKf5x5HVAtw1sNjddLn44/20BHvG3rHney3na4WXe+x+e8CgYEAvYNJPnJAsSACB2dK2I6XLp/7cPwARBqdsgCYvBa9w1F+BqR8qVRyQleEGRLF3ctcEBoxoVvmMBixIG8em/T6wuLLrfh9heM1Ze6tkvCooQ07iAbrPvy1gUnO8ON4mJ1+U+Iv8PNnEyo13NKHH420uUlT/OfW5tjUb3V9VsFMJlkCgYEAh4JfL9SHasWsOGjyYbPP0seWkSzMRx++dWV1NdPn77/TobB2TTQO7Tuhr/oHwlhG3Tx0I6lWfyIb0kNKkb3ZbFUVhWmZZEtazkykIInWvQ7e6B+my7itvbbWY0Wvs+u+ACnIn5ouMT3WQEZ4aQ8kAMLO/8hJ/dGDGaScebB66JcCgYEAuPzCLjaQd1VrJZbqNGFbqaN4aV1TVSc1718tt8vrCBEwF4PQO+m2bpPG2kK86jdrcjxfXca69w/jNmnBUzLa5AlGEFeTD3It2YYV4G0R7cNg7PL0BtPeyIkne3RPb4msmm0bpvOxFcAKO7c1NtO4KXUuipwz5bqaAwKIinq8vmECgYAjGnngBDG20C2rhcXYyxuFh/i8S+0ih0+/f3Bmm65J0qt7yGtuhWVpJU1IMRTrGSl10rF7uteu3Htkh0FkM8w53IVNGGl1bwNdY1bKfiJaNYvBfAWUuN9Ixg8KA/yuAGOML0fxCKb0kwL1d2gfHEDitUtgW9SgvATjSCuk7uHuXQ==',

        'log' => [ // optional
            'file' => './logs/alipay.log',
            'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug
            'type' => 'single', // optional, 可选 daily.
            'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
        ],
        'http' => [ // optional
            'timeout' => 5.0,
            'connect_timeout' => 5.0,
            // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
        ],
        'mode' => 'dev', // optional,设置此参数,将进入沙箱模式
    ];

    public function index()
    {
        $order = [
            'out_trade_no' => time(),
            'total_amount' => '1',
            'subject' => 'test subject - 测试',
        ];

        $alipay = Pay::alipay($this->config)->web($order);

        return $alipay->send();// laravel 框架中请直接 `return $alipay`
    }

    public function return()
    {
        $data = Pay::alipay($this->config)->verify(); // 是的,验签就这么简单!

        // 订单号:$data->out_trade_no
        // 支付宝交易号:$data->trade_no
        // 订单总金额:$data->total_amount
    }

    public function notify()
    {
        $alipay = Pay::alipay($this->config);

        try{
            $data = $alipay->verify(); // 是的,验签就这么简单!

            // 请自行对 trade_status 进行判断及其它逻辑进行判断,在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。
            // 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号;
            // 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);
            // 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email);
            // 4、验证app_id是否为该商户本身。
            // 5、其它业务逻辑情况

            Log::debug('Alipay notify', $data->all());
        } catch (\Exception $e) {
            // $e->getMessage();
        }

        return $alipay->success()->send();
    }
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.海上月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值