bkash支付网关创建规则

bkash支付网关创建规则

如果您想设置 bkash 支付网关,您需要遵循一些步骤。下面我将逐步指导您如何集成 bkash 支付网关。为此,我们将使用 bkash 的 merchant api。

1. bkash api 集成要点
bkash 商户账户:您必须拥有 bkash 商户账户。如果没有你可以申请bkash merchant。
api凭证:在商户帐户设置后,bkash将向您提供api用户名、api密码、应用程序密钥和应用程序密钥。
ssl证书:bkash支付网关必须要有ssl证书。
webhook url:您需要设置一个webhook url来接收付款通知。
2.支付网关集成流程
第1步:环境设置
首先设置您的 php 环境或任何其他服务器端环境。

composer.json 文件(如果使用 php)
json
复制代码
{
“要求”:{
“guzzlehttp/guzzle”: “^7.0”
}
}
然后运行composer install。

第 2 步:文件和目录结构
明文
复制代码
项目根目录/
├──index.php
├── bkash/
│ ├── config.php
│ ├── token.php
│ ├── create_ payment.php
│ ├──execute_ payment.php
│ └── query_ payment.php
└── success.php
步骤3:bkash api配置(bkash/config.php)
php
复制代码
<?php
返回[
‘base_url’ => ‘https://checkout.sandbox.bka.sh/v1.2.0-beta’,
‘用户名’ = > ‘your_bkash_username’,
‘密码’ = > ‘your_bkash_password’,
‘app_key’ = > ‘your_app_key’,
‘app_secret’ => ‘your_app_secret’,
‘callback_url’ => ‘https://fqrhost.com/success.php’
];
?>
步骤 4:生成访问令牌 (bkash/token.php)
php
复制代码
<?php
$config = include(‘config.php’);

函数generatetoken() {
全局 $config;
$url = $config[‘base_url’] 。 ‘/checkout/token/grant’;
$标题= [
‘内容类型:application/json’,
‘用户名:’ . $config[‘用户名’],
‘密码:’ 。 $config[‘密码’]
];

$data = [    'app_key' => $config['app_key'],    'app_secret' => $config['app_secret']];$curl = curl_init($url);curl_setopt($curl, curlopt_httpheader, $headers);curl_setopt($curl, curlopt_post, true);curl_setopt($curl, curlopt_postfields, json_encode($data));curl_setopt($curl, curlopt_returntransfer, true);$result = curl_exec($curl);curl_close($curl);$response = json_decode($result, true);return $response['id_token'];

}

$token =generatetoken();
?>
第5步:创建付款(bkash/create_ payment.php)
php
复制代码
<?php
include(‘token.php’);

函数createpayment($金额){
全局 $config, $token;
$url = $config[‘base_url’] 。 ‘/结账/付款/创建’;
$标题= [
‘内容类型:application/json’,
‘授权:’ 。 $代币,
‘x-app-key:’ 。 $config[‘app_key’]
];

$data = [    'amount' => $amount,    'currency' => 'bdt',    'intent' => 'sale',    'merchantinvoicenumber' => 'inv-' . uniqid(),    'callbackurl' => $config['callback_url']];$curl = curl_init($url);curl_setopt($curl, curlopt_httpheader, $headers);curl_setopt($curl, curlopt_post, true);curl_setopt($curl, curlopt_postfields, json_encode($data));curl_setopt($curl, curlopt_returntransfer, true);$result = curl_exec($curl);curl_close($curl);return json_decode($result, true);

}

$response = createpayment(1000); // 1000卢比付款
header(‘位置:’ . $response[‘bkashurl’]);
?>
第6步:执行付款(bkash/execute_ payment.php)
php
复制代码
<?php
include(‘token.php’);

函数executepayment($ paymentid) {
全局 $config, $token;
$url = $config[‘base_url’] 。 ‘/结帐/付款/执行/’ 。 $付款id;
$标题= [
‘内容类型:application/json’,
‘授权:’ 。 $代币,
‘x-app-key:’ 。 $config[‘app_key’]
];

$curl = curl_init($url);curl_setopt($curl, curlopt_httpheader, $headers);curl_setopt($curl, curlopt_returntransfer, true);$result = curl_exec($curl);curl_close($curl);return json_decode($result, true);

}

if (isset($_get[‘ paymentid’])) {
$response =executepayment($_get[‘ paymentid’]);
回声’

';
print_r($response);
echo '

‘;
}
?>
第7步:成功页面(success.php)
php
复制代码
<?php
echo “支付成功!”;
?>
3.系统测试
您可以使用 bkash 的沙盒环境测试您的系统。
要使用生产模式,请从 bkash 更新您的 api 密钥和 url。
4. webhook 设置(可选)
bkash 可以使用 webhook url 进行支付更新。我们将向您发送包含付款信息的通知。

购买域名托管

以上就是bkash支付网关创建规则的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1282623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月10日 23:11:44
下一篇 2025年12月10日 23:12:00

相关推荐

  • PHP怎样获取图片EXIF信息 读取图片EXIF信息的5个实用技巧

    如何获取php图片exif信息?使用exif_read_data()函数可读取图片的exif元数据,包含拍摄时间、相机型号等。1. 确保php启用了exif扩展;2. 检查图片路径正确且文件包含exif数据;3. 若出现中文乱码,可用mb_convert_encoding()转换编码;4. 可选第三…

    2025年12月11日 好文分享
    000
  • PHP日志记录:Monolog库实践

    %ignore_a_1%是php中用于日志记录的强大库,其核心在于处理器和格式化器。1. 安装monolog通过composer执行“composer require monolog/monolog”。2. 基本用法包括创建日志频道、添加处理器并记录消息。3. 日志级别从低到高依次为debug、in…

    2025年12月11日 好文分享
    000
  • PHP怎样获取网页HTML PHP抓取网页内容的3种高效方式分享

    php获取网页html内容主要有以下几种方式:1.file_get_contents()函数,优点是简单易用,代码量少,缺点是功能有限,无法设置请求头、超时时间等,容易被反爬虫机制拦截;2.curl扩展,功能强大,可以设置各种http选项,支持https,但代码相对复杂且需要安装curl扩展;3.g…

    2025年12月11日 好文分享
    000
  • PHP怎样解析命令行参数 解析命令行参数的5个实用技巧

    php解析命令行参数可通过$argv和$argc实现基础处理,使用getopt()支持短选项与长选项,并可借助第三方库如symfony/console提升效率。1. 使用$argv和$argc手动解析,通过遍历数组判断参数类型并处理;2. 用getopt()函数更高效地处理多个参数,支持短选项(如-…

    2025年12月11日 好文分享
    000
  • PHP中的SMTP:如何发送电子邮件

    使用php通过smtp发送电子邮件需借助第三方库如phpmailer。1. 引入phpmailer库,可通过composer或手动引入;2. 配置smtp连接参数,包括主机、认证信息、加密方式和端口;3. 设置发件人、收件人及邮件内容;4. 使用try…catch处理异常并捕获错误信息。…

    2025年12月11日 好文分享
    000
  • PHP中的API文档:如何使用OpenAPI规范生成文档

    使用openapi规范生成php api文档的核心方法包括:1.选择合适工具,如swagger ui、swagger editor及zircote/swagger-php等;2.编写openapi规范文件,定义api基本信息、端点、参数、响应和数据模型;3.可选地通过代码注释生成规范文件,利用工具扫…

    2025年12月11日 好文分享
    000
  • PHP怎样处理STOMP协议 STOMP消息队列处理指南

    php处理stomp协议主要有两种方式:使用pecl扩展或第三方库。1. 使用pecl的stomp扩展:通过pecl install stomp安装,需配置php-dev工具和启用extension=stomp.so,适用于追求高性能的场景;2. 使用第三方库如enqueue/stomp-clien…

    2025年12月11日 好文分享
    000
  • 在Laravel框架中如何解决“Too many open files”错误?

    在laravel框架中解决“too many open files”错误的方法 在使用php7.3和laravel框架执行定时任务时,你可能会遇到一个错误提示,指出“打开文件太多”,错误信息大致如下: [2023-03-15 00:14:13] local.ERROR: include(/www/v…

    好文分享 2025年12月11日
    100
  • Composer自定义包安装路径调试:如何打印$installPath变量?

    深入Composer自定义包调试:轻松打印安装路径 在使用Composer管理依赖时,自定义包的安装路径并非总是默认的vendor目录。这通常需要编写Composer插件来实现。然而,调试自定义包的安装过程,例如打印安装路径$installPath,却可能比较棘手。本文将提供一种简单方法,无需复杂配…

    2025年12月11日
    000
  • Composer安装RabbitMQ扩展时遇到版本冲突怎么办?

    Composer安装RabbitMQ扩展时遭遇版本冲突的解决方案 在使用Composer安装php-amqplib/php-amqplib扩展时,常常会遇到版本冲突问题。例如,你的composer.json文件可能声明了alibabacloud/darabonba-openapi的版本要求为^2.1…

    2025年12月11日
    200
  • 高效的异步操作:Guzzle Promises 的实践与应用

    最近在开发一个需要同时访问多个外部 API 的应用时,遇到了严重的性能问题。 传统的同步请求方式导致应用响应时间过长,用户体验极差。 每个 API 请求都需要等待完成才能发出下一个请求,这在处理大量请求时效率极低,严重影响了系统的吞吐量。 为了解决这个问题,我开始寻找异步处理的方案,最终选择了 Gu…

    2025年12月11日
    000
  • 告别依赖注入的困扰:使用 PSR-11 容器接口简化代码

    我最近参与了一个大型PHP项目的重构工作。项目中充斥着大量的new操作,各个类之间紧密耦合,代码难以测试和维护。修改一个类往往需要修改多个地方,这使得开发效率极低,而且容易引入新的bug。 我意识到,我们需要引入依赖注入来改善这种情况。然而,仅仅引入依赖注入的概念还不够,我们需要一个高效的机制来管理…

    2025年12月11日
    000
  • 安全地执行shell命令:Hestiacp/phpquoteshellarg库的使用指南

    在开发过程中,我们经常需要调用系统命令来完成一些任务,例如处理文件、执行备份等。PHP提供了escapeshellarg()函数来转义shell命令参数,防止命令注入。然而,该函数在处理某些特殊字符时,效果并不理想,存在安全隐患。 例如,如果用户提交的文件名为’rm -rf /’,直接使用escap…

    2025年12月11日
    000
  • 告别繁琐的Google API认证:使用google/auth库简化你的开发流程

    我最近在开发一个需要访问Google Drive API的应用。一开始,我尝试自己动手实现OAuth 2.0的认证流程,这包括处理授权码、获取访问令牌等步骤。整个过程非常复杂,代码冗长且难以维护,而且容易出错。 更糟糕的是,不同的Google API服务需要不同的授权范围,这使得代码变得更加难以管理…

    2025年12月11日
    000
  • 高效测试Symfony应用:Codeception与codeception/module-symfony模块

    我最近参与了一个Symfony项目的开发,为了保证代码质量,我们需要编写全面的测试用例。我们选择了Codeception作为测试框架,因为它易于上手且功能强大。起初,我们尝试直接使用Codeception编写测试,但很快就遇到了问题。Symfony应用的复杂性使得我们难以直接访问服务容器、模拟请求和…

    2025年12月11日
    000
  • 高效处理 JSON 数据:scienta/doctrine-json-functions 库的使用指南

    我最近参与的项目使用了 Doctrine ORM 管理数据库,其中一个实体包含一个 JSON 类型的字段,用于存储用户的配置信息。最初,我尝试使用原生 SQL 查询来处理 JSON 数据,例如使用 MySQL 的 JSON_EXTRACT 函数。这种方法虽然可以实现功能,但代码变得冗长且难以阅读,而…

    2025年12月11日
    000
  • 高效构建JSON-RPC服务:felixfbecker/advanced-json-rpc 的实践

    我的项目需要一个 JSON-RPC 接口来处理来自客户端的各种请求。这些请求包含不同的参数类型,有些请求需要调用嵌套对象中的方法。我最初尝试使用一个简单的 JSON 解析器和手动编写的逻辑来处理请求,但很快发现这种方法效率低下且难以维护。代码变得冗长且难以理解,并且处理参数类型转换和错误处理也非常麻…

    2025年12月11日
    000
  • 告别崩溃:使用Sentry提升Symfony应用的稳定性

    在开发过程中,我们都经历过应用崩溃的痛苦。 用户报告问题,但我们却苦于无法快速定位错误,只能在茫茫代码海洋中大海捞针。 更糟糕的是,一些错误可能只在特定环境或用户操作下才会出现,难以在本地复现。 我之前的项目使用的是简单的日志记录,虽然能记录一些错误信息,但缺乏上下文信息,例如请求参数、用户身份、堆…

    2025年12月11日
    000
  • 告别调试地狱:使用 Spatie/Laravel-Ray 提升 Laravel 应用调试效率

    我最近在开发一个 Laravel 应用,其中涉及到复杂的订单处理流程和用户交互。在调试过程中,我遇到了许多问题:数据库查询缓慢、邮件发送失败、业务逻辑错误等等。传统的调试方法,例如 dd() 和 var_dump(),虽然能提供一些信息,但效率低下,且难以追踪复杂的流程。 日志文件虽然记录了详细的信…

    2025年12月11日
    000
  • 高效处理异步操作:Guzzle Promises 的实践与应用

    我的应用需要从多个不同的API获取数据,这些API的响应时间并不稳定。如果使用同步请求,程序需要等待每个请求完成才能继续执行下一个,这导致整个流程非常缓慢。用户需要等待很长时间才能看到结果,这显然是不可接受的。 起初,我尝试使用一些简单的多线程或异步函数来处理这些请求,但这些方法要么过于复杂,要么难…

    2025年12月11日
    000

发表回复

登录后才能评论
关注微信