基于Lumen-支付宝支付(Payment)

基于Lumen-支付宝支付, 这里使用的是Payment第三方sdk by helei112g/payment

Payment是php版本的支付聚合第三方sdk,集成了微信支付、支付宝支付、招商一网通支付。提供统一的调用接口,方便快速接入各种支付、查询、退款、转账能力。服务端接入支付功能,方便、快捷。

Payment使用文档
Payment使用常见问题汇总

环境准备

  • Payment 需要 PHP >= 5.6以上的版本,并且同时需要PHP安装以下扩展
    • cURL extension
    • mbstring
    • BC Math
    • Guzzle

      guzzle 是一个开源的php http请求lib, 项目地址

安装Payment

1
composer require "riverslei/payment:*"

先看几个Payment Demo

手机app支付demo

  • vendor/riverslei/example/ali/appCharge.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

require_once __DIR__ . '/../../autoload.php';

use Payment\Common\PayException;
use Payment\Client\Charge;
use Payment\Config;

date_default_timezone_set('Asia/Shanghai');
$aliConfig = require_once __DIR__ . '/../aliconfig.php';

// 订单信息
$orderNo = time() . rand(1000, 9999);
$payData = [
'body' => 'ali qr pay',
'subject' => '测试支付宝扫码支付',
'order_no' => $orderNo,
'timeout_express' => time() + 600,// 表示必须 600s 内付款
'amount' => '0.01',// 单位为元 ,最小为0.01
'return_param' => '123123',
'client_ip' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1',// 客户地址
'goods_type' => '1',
'store_id' => '',
];

try {
$str = Charge::run(Config::ALI_CHANNEL_APP, $aliConfig, $payData);
} catch (PayException $e) {
echo $e->errorMessage();
exit;
}

echo $str;// 这里如果直接输出到页面,&not 会被转义,请注意

wap网站支付

  • vendor/riverslei/example/ali/wapCharge.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

require_once __DIR__ . '/../../autoload.php';

use Payment\Common\PayException;
use Payment\Client\Charge;
use Payment\Config;

date_default_timezone_set('Asia/Shanghai');
$aliConfig = require_once __DIR__ . '/../aliconfig.php';

// 订单信息
$orderNo = time() . rand(1000, 9999);
$payData = [
'body' => 'ali wap pay',
'subject' => '测试支付宝手机网站支付',
'order_no' => $orderNo,
'timeout_express' => time() + 600,// 表示必须 600s 内付款
'amount' => '0.01',// 单位为元 ,最小为0.01
'return_param' => 'tata',// 一定不要传入汉字,只能是 字母 数字组合
'client_ip' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1',// 客户地址
'goods_type' => '1',
'store_id' => '',
];

try {
$url = Charge::run(Config::ALI_CHANNEL_WAP, $aliConfig, $payData);
} catch (PayException $e) {
echo $e->errorMessage();
exit;
}

header('Location:' . $url);

web电脑支付 即时到账接口

  • vendor/riverslei/example/ali/webCharge.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php

require_once __DIR__ . '/../../autoload.php';

use Payment\Common\PayException;
use Payment\Client\Charge;
use Payment\Config;

date_default_timezone_set('Asia/Shanghai');
$aliConfig = require_once __DIR__ . '/../aliconfig.php';

// 订单信息
$orderNo = time() . rand(1000, 9999);
$payData = [
'body' => 'ali web pay',
'subject' => '测试支付宝电脑网站支付',
'order_no' => $orderNo,
'timeout_express' => time() + 600,// 表示必须 600s 内付款
'amount' => '0.01',// 单位为元 ,最小为0.01
'return_param' => '123123',
'client_ip' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1',// 客户地址
'goods_type' => '1',
'store_id' => '',

// 说明地址:https://doc.open.alipay.com/doc2/detail.htm?treeId=270&articleId=105901&docType=1
// 建议什么也不填
'qr_mod' => '',
];

try {
$url = Charge::run(Config::ALI_CHANNEL_WEB, $aliConfig, $payData);
} catch (PayException $e) {
echo $e->errorMessage();
exit;
}

header('Location:' . $url);

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2023 Keep It Simple And Stupid All Rights Reserved.

访客数 : | 访问量 :