当前位置 : 主页 > 网络编程 > PHP >

彩虹个人发卡网源码最新版全解密附下载地址和搭建教程

来源:互联网 收集:自由互联 发布时间:2023-09-03
在本文中,让我们看看如何实施支付网关PHP源代码项目。我们已经在一篇用PHP语言集成的文章中清楚地解释了这个过程。但是所有技术的步骤都是相同的。因此,请阅读此处的集成指南

在本文中,让我们看看如何实施支付网关PHP源代码项目。我们已经在一篇用PHP语言集成的文章中清楚地解释了这个过程。但是所有技术的步骤都是相同的。因此,请阅读此处的集成指南。其实步骤很简单,我们只需要输入商户密钥和salt。

源码:paywks.top/ka

这里我有使用框架,因为支付网关不像简单的过程。我们需要手动设置一些更改并实施代码。所以当我们使用COREPHP时,会面临更多的错误处理困难。这就是为什么大多数开发人员建议使用Laravel、Codeigniter等框架的原因。

支付网关PHP要遵循的步骤

 彩虹个人发卡网源码最新版全解密附下载地址和搭建教程_数据库

如果您是该类别的初学者,请阅读官方文档。之后,您对构建代码有了一些想法。第一步是选择最好的支付网关提供商之一。

我希望你的系统上已经有下载节点,以提取依赖管理器。所以首先通过命令提示符创建Laravel项目。

useShipu\Aamarpay\Aamarpay;
$config=[
'store_id'=>'Yourstoreid',
'signature_key'=>'Yoursignaturekey',
'sandbox'=>true,
'redirect_url'=>[
'success'=>[
'route'=>'payment.success'
],
'cancel'=>[
'route'=>'payment.cancel'
]
]
];
$payment=newAamarpay($config);

上面的代码解释了连接到数据库的模块的必填字段。然后只有我们能够与数据库系统进行通信。否则,确切的数据不会在后端通信中传输。

用法

使用方式主要用于后端过程,例如数据如何在服务器端访问和存储。在这个项目中,我使用了MySQL数据库。它是95%的开发人员的主要推荐语言。

传递付款网址

为完全管理后端进程的支付网关服务器传递URL。这意味着获得转账的完全许可并从客户那里收到金额。

use\Shipu\Aamarpay\Aamarpay;
...
$payment=newAamarpay(config('aamarpay'));
return$payment->customer([
'cus_name'=>'ShipuAhamed',//Customername
'cus_phone'=>'01616022669'//CustomerPhone
'cus_email'=>'shipuahamed01@gmail.com',//Customeremail
])->transactionId()->amount(3500)->hiddenValue();
or
return$payment->customer([
'cus_name'=>'ShipuAhamed',//Customername
'cus_phone'=>'9854345483'//CustomerPhone
'cus_email'=>'shipuahamed01@gmail.com',//Customeremail
])->amount(3500)->hiddenValue();

出于演示目的,在上一节中提供了未经验证的详细信息。但在直播过程中,我们必须给出经过验证的信息。之后,只有特定客户能够发送和接收付款。如今,大多数人都进行在线支付,例如Payumoney、CCAvenue、网上银行、Phonepe和更多应用程序。

支付网关流程

 彩虹个人发卡网源码最新版全解密附下载地址和搭建教程_数据库_02

一般我们在进行网上支付时,交易失败的情况有三种可能。那是,

成功消息(金额将成功贷记/借记)

失败(服务器忙)

已取消(客户自己提出)

Route::post('payment/success','YourMakePaymentsController@paymentSuccess')->name('payment.success');
Route::post('payment/failed','YourMakePaymentsController@paymentFailed')->name('payment.failed');
Route::post('payment/cancel','YourMakePaymentsController@paymentCancel')->name('payment.cancel');

在全球大流行的时代,一个平稳运行的支付网关是经营具有大量在线业务的企业的关键。如果您已经在使用像BigCommerce这样的电子商务软件,那么您几乎不需要任何编码技能,因为该应用程序已经无缝内置了PayPal等主要支付网关。当您想将支付网关直接连接到您的网站时,这项技能就变得至关重要。如果您具备C#、Java或PHP编码技能,那么这些教程将使您更轻松地完成集成所选支付网关的步骤。

PHP中的支付网关集成

我们将以Stripe为例,向我们展示如何在PHP中进行支付网关集成。借助Stripe的支付网关,您可以通过集成结帐系统并启用支付功能,直接在您的网站上轻松接受信用卡。

要在基于PHP的网站中集成Stripe支付网关,您需要实现以下功能。

1、准备HTML表单以收集信用卡信息。

2、创建Stripe令牌以安全地传输卡信息。

3、提交包含卡详细信息的表格。

4、验证卡并处理费用。

5、在数据库中插入付款详细信息,以便向用户显示状态。

测试条API密钥数据

在启用Stripe支付网关集成之前,您需要对其进行彻底测试。要测试信用卡支付流程,您需要在您的Stripe帐户中生成TESTAPI密钥。

1、登录您的Stripe帐户并导航至API页面。

2、在测试数据部分下,您会看到列出了API密钥。要显示密钥,请单击显示测试密钥令牌按钮。

收集Publishablekey和Secretkey以供稍后在脚本中使用。

在继续之前,您可能需要查看文件结构:

创建数据库表

接下来,您需要在数据库中创建一个表来保存交易明细。接下来是在MySQL数据库中创建订单表的SQL。

CREATETABLE`orders`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`name`varchar(100)COLLATEutf8_unicode_ciNOTNULL,
`email`varchar(255)COLLATEutf8_unicode_ciNOTNULL,
`card_num`bigint(20)NOTNULL,
`card_cvc`int(5)NOTNULL,
`card_exp_month`varchar(2)COLLATEutf8_unicode_ciNOTNULL,
`card_exp_year`varchar(5)COLLATEutf8_unicode_ciNOTNULL,
`item_name`varchar(255)COLLATEutf8_unicode_ciNOTNULL,
`item_number`varchar(50)COLLATEutf8_unicode_ciNOTNULL,
`item_price`float(10,2)NOTNULL,
`item_price_currency`varchar(10)COLLATEutf8_unicode_ciNOTNULLDEFAULT'usd',
`paid_amount`varchar(10)COLLATEutf8_unicode_ciNOTNULL,
`paid_amount_currency`varchar(10)COLLATEutf8_unicode_ciNOTNULL,
`txn_id`varchar(100)COLLATEutf8_unicode_ciNOTNULL,
`payment_status`varchar(50)COLLATEutf8_unicode_ciNOTNULL,
`created`datetimeNOTNULL,
`modified`datetimeNOTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;

数据库配置(dbConfig.php)

您将需要dbConfig.php文件来连接和选择数据库。在数据库凭证后指定数据库主机( 彩虹个人发卡网源码最新版全解密附下载地址和搭建教程_支付网关_03dbUsername)、密码( 彩虹个人发卡网源码最新版全解密附下载地址和搭建教程_数据库_04dbName)。

<?php
//数据库凭据
$dbHost='本地主机';
$dbUsername='root';
$dbPassword='*****';
$dbName='codexworld';
//连接数据库
$db=newmysqli($dbHost,$dbUsername,$dbPassword,$dbName);
//连接失败显示错误
如果($db->connect_errno){
printf("连接失败:%s\n",$db->connect_error);
出口();
}
支付表格(index.php)
JavaScript
包括StripeJavaScript库,以将敏感信息直接从浏览器安全地发送到Stripe。
<!--条纹JavaScript库-->
<scripttype="text/javascript"src="https://js.stripe.com/v2/"></script>
jQuery库不是使用Stripe所必需的;它仅用于此示例。
<!--jQuery仅用于此示例;不需要使用Stripe-->
<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
在JavaScript代码中,将标识您网站的可发布API密钥设置为Stripe。stripeResponseHandler()函数创建一个一次性令牌并在支付表单HTML中插入一个令牌字段。
<脚本类型="文本/javascript">
//设置你的可发布密钥
Stripe.setPublishableKey('Your_API_Publishable_Key');
//回调以处理来自条带的响应
功能stripeResponseHandler(状态,响应){
如果(响应。错误){
//启用提交按钮
$('#payBtn').removeAttr("禁用");
//在表单上显示错误
$(".payment-errors").html(response.error.message);
}别的{
varform$=$("#paymentFrm");
//获取代币id
vartoken=response['id'];
//将令牌插入表单
form$.append("<inputtype='hidden'name='stripeToken'value='"
+令牌+"'/>");
//提交表单到服务器
形式$.get(0).submit();
}
}
$(文档).ready(函数(){
//在表单提交
$("#paymentFrm").submit(函数(事件){
//禁用提交按钮以防止重复点击
$('#payBtn').attr("已禁用","已禁用");
//创建一次性令牌以向用户收费
条纹.createToken({
号码:$('.card-number').val(),
cvc:$('.card-cvc').val(),
exp_month:$('.card-expiry-month').val(),
exp_year:$('.card-expiry-year').val()
},stripeResponseHandler);
//从回调中提交
返回假;
});
});

以下HTML表单收集用户信息(姓名和电子邮件)和卡详细信息(卡号、到期日期和CVC号)。为了进一步的卡支付处理,将表单提交给PHP脚本

接下来,我们将使用StripePHP库来处理卡支付。该图书馆可在此处获得。

验证和处理付款(submit.php)

在此文件中,验证提交的卡详细信息,并使用StripePHP库处理费用。

1、从提交的表单中获取令牌、卡详细信息和用户信息。

包括StripePHP库。

2、设置我们在StripeTestAPIData部分创建的Publishablekey和Secretkey。

3、使用用户电子邮件和Stripe令牌将客户添加到Stripe。

4、指定产品详细信息并向信用卡或借记卡收费。

5、检索先前创建的费用详细信息。

6、如果收费成功,订单和交易详情将被插入数据库。否则,将显示一条错误消息。

//checkwhetherstripetokenisnotempty
if(!empty($_POST['stripeToken'])){
//gettoken,cardanduserinfofromtheform
$token=$_POST['stripeToken'];
$name=$_POST['name'];
$email=$_POST['email'];
$card_num=$_POST['card_num'];
$card_cvc=$_POST['cvc'];
$card_exp_month=$_POST['exp_month'];
$card_exp_year=$_POST['exp_year'];
//includeStripePHPlibrary
require_once('stripe-php/init.php');
//setapikey
$stripe=array(
"secret_key"=>"Your_API_Secret_Key",
"publishable_key"=>"Your_API_Publishable_Key"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
//addcustomertostripe
$customer=\Stripe\Customer::create(array(
'email'=>$email,
'source'=>$token
));
//iteminformation
$itemName="PremiumScriptCodexWorld";
$itemNumber="PS123456";
$itemPrice=55;
$currency="usd";
$orderID="SKA92712382139";
//chargeacreditoradebitcard
$charge=\Stripe\Charge::create(array(
'customer'=>$customer->id,
'amount'=>$itemPrice,
'currency'=>$currency,
'description'=>$itemName,
'metadata'=>array(
'order_id'=>$orderID
)
));
//retrievechargedetails
$chargeJson=$charge->jsonSerialize();
//checkwhetherthechargeissuccessful
if($chargeJson['amount_refunded']==0&&empty($chargeJson
['failure_code'])&&$chargeJson['paid']==1&&$chargeJson['captured']==1){
//orderdetails
$amount=$chargeJson['amount'];
$balance_transaction=$chargeJson['balance_transaction'];
$currency=$chargeJson['currency'];
$status=$chargeJson['status'];
$date=date("Y-m-dH:i:s");
//includedatabaseconfigfile
include_once'dbConfig.php';
//inserttansactiondataintothedatabase
$sql=
"INSERTINTOorders(name,email,card_num,card_cvc,card_exp_month,card_exp_year,
item_name,item_number,item_price,item_price_currency,paid_amount,
paid_amount_currency,txn_id,payment_status,created,modified)VALUES
('".$name."','".$email."','".$card_num."','".$card_cvc."','".$card_exp_month."',
'".$card_exp_year."','".$itemName."','".$itemNumber."','".$itemPrice."','".$currency."',
'".$amount."','".$currency."','".$balance_transaction."'
,'".$status."','".$date."','".$date."')";
$insert=$db->query($sql);
$last_insert_id=$db->insert_id;
//iforderinsertedsuccessfully
if($last_insert_id&&$status=='succeeded'){
$statusMsg="<h2>Thetransactionwassuccessful.</h2>
<h4>OrderID:{$last_insert_id}</h4>";
}else{
$statusMsg="Transactionhasbeenfailed";
}
}else{
$statusMsg="Transactionhasbeenfailed";
}
}else{
$statusMsg="Formsubmissionerror.......";
}
//showsuccessorerrormessage
echo$statusMsg;
上一篇:PHP学习笔记——【一往无前】
下一篇:没有了
网友评论