hyperpay/payment

此包的最新版本(dev-main)没有可用的许可证信息。

dev-main 2022-07-28 11:55 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:42:34 UTC


README

复制并支付

(支付包) Laravel >= 7 的复制并支付包

要求

  • composer 版本 >= 2.6
  • Laravel 版本 >= 7

特性

  • 处理支付流程
  • 易于使用

支持的品牌

资源

索引

安装

composer require hyperpay/payment

发布配置文件

php artisan vendor:publish --provider='Hyperpay\Payment\HyperpayServiceProvider'

config/payments.php 中配置支付凭证

project
|
└───config
   │   payments.php

return [

"environment"  =>  "test",
  
"gatewayes"  => [
	"card"  => [
		"enabled"  =>  false,
		'entity_id'  =>  "",
		"access_token"  =>  "",
		"currency"  =>  "SAR",
		"transaction_type"  =>  "DB",
		"brands"  =>  "VISA MASTER AMEX",
		"label"  =>  "Cridet Card",
	],
	"mada"  => [
		"enabled"  =>  false,
		'entity_id'  =>  "",
		"access_token"  =>  "",
		"currency"  =>  "SAR",
		"transaction_type"  =>  "DB",
		"brands"  =>  "MADA",
		"label"  =>  "Mada Debit Card",
		],
	]
	];

使用您提供的凭证填写 entity_idaccess_token,并定义支持的品牌

"card"  =>  [  
	"brands"  =>  "VISA MASTER AMEX",

请确保所有品牌均使用大写字母,并用空格 " " 分隔

启用/禁用

默认情况下,所有支付方式均被禁用。要启用支付方式,只需将 enabled 改为 true

...
"card"  =>  [  
	"enabled"  =>  true,
....

基本使用

在任意 blade 模板中,您都可以调用支付组件

<div  class="flex-center position-ref full-height">
	<x-hyper-pay-form />
</div>

组件属性

  • amount (必需) : 总订单金额
  • merchantTransactionId (必需) : 通常表示 order_id
  • firstName (可选) : 客户名
  • lastName (可选) : 客户姓
  • email(可选) : 客户邮箱
  • street (可选) : 客户街道地址
  • city(可选) : 客户城市地址
  • country(可选) : 客户国家地址
  • zip(可选) : 客户邮政编码

传递数据

    <x-hyper-pay-form amount="10.00" merchantTransactionId="19" />  

自定义

...
"card"  =>  [  
	"label"  =>  "As you want to dispaly to customers",
....

翻译 我们的可翻译您的应用程序区域设置并自动翻译组件。如果您想自定义翻译,请编辑来自的翻译文件

project
|
└───resources
   |
   └─── lang
	   |
	   └─── ar
		 | payment.php
	   |
	   └─── en
		| payment.php

return [
	"Mada Debit Card"  =>  "بطاقة مدى البنكية",
	"Cridet Card"  =>  "بطاقة ائتمان",
	"Pay_Again_?"  =>  "دفع مرة اخرى ؟"
];

处理结果

成功 要处理成功状态,您将在中的 success 方法内编写您的逻辑

project
|
└───app
   |
   └─── Http
	   |
	   └─── Controllers
			 | PaymentController.php

public  function  success($result)
{
	return  $result;
}

这里,您可以处理事务的成功状态,如 (重定向,更新数据库等)

您所需的所有数据都将包含在 $result 参数中

{
"id": "8ac7a49f82323dc60182350fb142773d",
"paymentType": "DB",
"paymentBrand": "VISA",
"amount": "95.00",
"currency": "SAR",
"descriptor": "9751.3590.4583 new channel Ahmad",
"merchantTransactionId": "5",
"result": {
  "code": "000.000.000",
  "description": "Transaction succeeded"
},
"resultDetails": {
  "ExtendedDescription": "Successfully processed"
},
"buildNumber": "a94641688adf253dbf3145d2dd0a203bbeeb50aa@2022-07-22 12:35:29 +0000",
"timestamp": "2022-07-25 11:13:20+0000",
"ndc": "777D1BE1744BEFD249DA95017DF97957.uat01-vm-tx03"
}

失败 默认情况下,当交易失败时,客户将被重定向回支付页面并显示错误消息

如果您想改变这种做法,请在 PaymentController.php 中创建一个带有 $result 参数的名为 failed() 的方法

public  function  failed($result)
{
	Session::flash('alert'  ,  $result['result']['description']);
	return  back();
}