kollway/allpay

Laravel的全额支付服务提供商

1.0.3 2018-03-02 02:44 UTC

This package is not auto-updated.

Last update: 2024-09-22 03:46:36 UTC


README

#Allpay SDK包装器为Laravel

allpay-laravel是一个包装了欧付宝官方提供的SDK的Service Provider。

让开发人员省去重复初始化SDK、输入配置值的麻烦。

关于欧付宝官方SDK,请参见全方位金流SDK技术文件下载

注意:AllPay.Payment.Integration.php(整个Allpay SDK的核心文件)不是我写的,是Allpay官网提供的SDK。所有功劳和荣誉归功于Allpay工程师。

此包只是使用service provider与facade将其包装,使其在Laravel上更易于使用。

安装

将allpay-4-laravel添加到您的composer.json

"require": {
  "kollway/allpay": "0.1.0"
}

然后使用composer安装:

$ composer update

注册Package

将service provider注册到app/config/app.php中的providers数组

'providers' => array(
	// ...
	
    'Kollway\Allpay\AllpayServiceProvider',
    
)

将类名缩写注册到app/config/app.php中的aliases数组

'aliases' => array(
	// ...
    'Allpay' => 'Kollway\Allpay\Facade\Allpay',
)

配置

在config文件夹中添加app/config/allpay-4-laravel.php,然后添加以下code:

<?php
return array( 
	
    'ServiceURL' => "https://payment.allpay.com.tw/Cashier/AioCheckOut",
    'HashKey' => "您的hashkey",
    'HashIV' => "您的hashiv",
    'MerchantID' => "您的merchantid"

);

用法

由于allpay-4-laravel只是将欧付宝官方提供的SDK类初始化后进行包装,实际上您仍然在操作SDK类对象。

关于欧付宝官方SDK,请参见全方位金流SDK技术文件下载

使用示例

###官方文件示例

官方SDK文件,一般订单示例如下:

$oPayment = new AllInOne();
/* 服務參數 */
$oPayment->ServiceURL ="<<您要呼叫的服務位址>>";
$oPayment->HashKey = "<<AllPay提供給您的Hash Key>>";
$oPayment->HashIV = "<<AllPay提供給您的Hash IV>>";
$oPayment->MerchantID ="<<AllPay提供給您的特店編號>>";
/* 基本參數 */
$oPayment->Send['ReturnURL'] = "<<您要收到付款完成通知的伺服器端網址>>";
$oPayment->Send['ClientBackURL'] = "<<您要歐付寶返回按鈕導向的瀏覽器端網址>>";
$oPayment->Send['OrderResultURL'] = "<<您要收到付款完成通知的瀏覽器端網址>>";
$oPayment->Send['ChoosePayment'] = PaymentMethod::ALL;
// blah blah
array_push($oPayment->Send['Items'], array('Name' => "<<產品C>>", 'Price' => (int)"<<單價>>",
'Currency' => "<<幣別>>", 'Quantity' => (int) "<<數量>>", 'URL' => "<<產品說明位址>>"));

/* 產生訂單 */
$oPayment->CheckOut();

使用allpay-4-laravel,您不需要输入服务参数。代码可以这样写:

Allpay::instance()->Send['ReturnURL'] = "<<您要收到付款完成通知的伺服器端網址>>";
Allpay::instance()->Send['ClientBackURL'] = "<<您要歐付寶返回按鈕導向的瀏覽器端網址>>";
Allpay::instance()->Send['OrderResultURL'] = "<<您要收到付款完成通知的瀏覽器端網址>>";
Allpay::instance()->Send['ChoosePayment'] = PaymentMethod::ALL;
// blah blah
array_push(Allpay::instance()->Send['Items'], array('Name' => "<<產品C>>", 'Price' => (int)"<<單價>>",
'Currency' => "<<幣別>>", 'Quantity' => (int) "<<數量>>", 'URL' => "<<產品說明位址>>"));

/* 產生訂單 */
Allpay::instance()->CheckOut();