你还在用原生的支付API吗?

文章热词:支付API

日期:2019-09-02 15:13 by 杨国伟 866 1 收藏
我要分享

摘要:原生支付固然是好,但是就是需要你自己一步一步的去搭建,封装代码等。这里介绍一下如何用第三方api支付:payment

杨国伟.jpg

Payment是什么?

Payment是一个集成了 支付宝支付、微信支付、招商支付的PHP SDK。服务端开发者将它集成到自己的项目中,可以方便的通过相同的操作方式进行各项支付操作。不再需要开发者去单独了解支付宝、微信、招商的接口文档。以发起支付举例,开发者只需要通过:

try {
    $str = Charge::run(支付类型, 配置文件, 支付数据);
} catch (PayException $e) {
    echo $e->errorMessage();
    exit;
}

Payment文档

https://helei112g1.gitbooks.io/payment-sdk/content/

如何安装

通过composer,这是推荐的方式,可以使用composer.json 声明依赖,或者直接运行下面的命令。

composer require "riverslei/payment:*"

放入composer.json文件中

"require": {

    "riverslei/payment": "*"

}

然后运行

composer update

下面是一个关于payment的支付宝即时到账的例子

支付宝从新版本开始,提供了沙箱方式,方便进行调试。但是,即时到账支付宝没有提供沙箱模式。因此大家在使用过程中,注意设置配置。

即时到账 主要应用于网站支付。注意:即时到账支付就是文档里的电脑网站支付。

即时到账接口属于支付宝老版本接口,当前 Payment 依然将其进行了保留。后期会跟随支付宝公告进行调整。 

即时到账的权限需要在支付宝商家平台进行签约。

签约地址: https://b.alipay.com/order/productDetail.htm?productId=2015110218012942

即时到账签约后,默认开通以下两个接口的权限: 

- 即时到账交易接口(create_direct_pay_by_user) 

- 即时到账批量退款有密接口(refund_fastpay_by_platform_pwd)

但是 Payment3.x 并未接入 即时到账批量退款有密接口。大家可以通过 新版退款接口发起退款操作。 

先上 即时到账发起支付 需要的参数列表

640_wps图片.jpg

body 主要是对商品的描述,根据自己的业务写就好,不要用一些非常特殊的字符,支付宝可能会进行一些处理,导致你的结果与预期不一样

subject 可以写一下商品名称信息,主要是方便支付宝后台对账时查看

order_no 自己生成的订单号,每次下单的单号必须唯一。也就是说:同一个 order_no 他的其他下单数据不能发生变化,价格、名称等等。如果有变化,需要重新生成一个订单号。

timeout_express 订单过期时间,很简单,你希望在那一刻过期,就写那个点的时间戳。只会精确到分钟

amount 订单的金额,就是用户实际需要支付的金额。

return_param 希望支付宝异步通知时,原样返回给你的数据,同样注意避免一些特殊字符

qr_mod 这个参数可以不设置,如果没有特殊需求建议不设置,可设置:0 1 2 3 。效果可以自己看看

paymethod 当用户进行支付时,默认使用的付款方式。可选值:creditPay(信用支付)directPay(余额支付)

以上就是需要发起支付的全部参数了。具体到 sdk 如何调用。看代码

use Payment\Common\PayException;
use Payment\Client\Charge;
$config = require_once('./aliconfig.php');// 这里我假设大家都已经配置好了。不会的请去看配置设置文档
$channel = 'ali_web';
$payData = [
    'body' => '一个苹果',
    'subject' => '牛逼公司--付款吧',
    'order_no' => 'NB12312355',
    'timeout_express' => '1489241888',
    'amount' => '100',
    'return_param' => 'buy some',
    //'qr_mod' => '',  // 这个参数建议默认就好,不设置
    'paymethod' => 'creditPay',
];
try {
    $payUrl = Charge::run($channel, $config, $payData);
} catch (PayException $e) {
    // 异常处理
    exit;
}

echo htmlspecialchars($payUrl);

返回值 $payUrl 是跳转向支付宝支付的一个连接。访问该连接即可跳转到支付宝。

即时到账的代码就全部完成了。

支付宝即时到账接口开发教程

链接:http://www.mano100.cn/thread-287-1-1.html

金币充值规则与优惠

链接:http://www.mano100.cn/thread-169-1-1.html

上一篇:discuz模板语法

下一篇:php阿里云短信接口接入


评论