zepson / africastalking
这是使用africastalking adk在您的Laravel应用程序中进行短信集成的包
This package is auto-updated.
Last update: 2024-09-09 10:11:27 UTC
README
本包为使用Laravel编写的应用程序提供了便捷的访问非洲 Talking API 的途径,并且已经与laravel 7进行了测试。
- 使用本包,您将在Laravel应用程序中获得以下服务
- [短信服务]
- [内容服务]
- [话费服务]
- [支付服务]
- [语音服务]
- [令牌服务]
- [应用程序服务]
文档
请查看API文档。
安装
您可以通过composer或下载源码来安装此包
通过Composer
安装此包的推荐方式是使用Composer。
composer require zepson/africastalking
发布配置文件
php artisan vendor:publish --tag=africastalking_config:config
用法
该包需要使用您的用户名和API密钥进行实例化,您可以从仪表板获取这些信息。
您可以使用此SDK为生产或沙盒应用程序。对于沙盒,应用程序用户名始终是 ALWAYS
sandbox
use zepson\africastalking\AfricasTalking; #UPDATE YOUR .ENV FILE WITH YOUR AFRICAS TALKING CREDENTIALS add-license-1 AFRICASTALKING_APP_USERNAME = "YOUR AFRICA IS TALKING APP NAME" AFRICASTALKING_APP_API_KEY = " YOUR APP URL" AFRICASTALKING_APP_SENDER_ID= "" // Set your shortCode or senderId #instantiate your servece as $AT = new AfricasTalking(); // Get one of the services $sms = $AT->sms(); // Use the service $result = $sms->send([ 'to' => '+2XXYYYOOO', 'message' => 'Hello World!' ]); print_r($result);
请参阅示例获取更多用法示例。
实例化
实例化类将为您提供具有可用方法的对象
$AT = new AfricasTalking(): 实例化类- 获取可用服务
应用程序
fetchApplicationData(): 获取应用程序信息。例如余额
话费
-
send($parameters, $options): 发送话费-
$parameters: 关联数组,包含以下键
recipients: 包含以下键的数组phoneNumber: 话费接收者。必需currencyCode: 3位ISO格式货币代码(例如KES、USD、UGX等)。必需amount: 发送金额。必需
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
短信
-
send($options): 发送短信message: 短信内容。必需to: 电话号码数组。必需from: 与您的非洲 Talking 账户注册的简码或字母数字ID。enqueue: 设置为true,如果您希望向API发送尽可能多的消息而不等待电信运营商的确认。
-
fetchMessages($options): 获取您的消息lastReceivedId: 这是您最后处理的消息的ID。默认为0
以下方法已移至内容服务,但为向后兼容性而保留在短信中
sendPremium($options):发送高级短信。调用$content->send($options)createSubscription($options):创建高级订阅。调用$content->createSubscription($options)fetchSubscriptions($options):获取您的高级订阅数据。调用$content->fetchSubscriptions($options)deleteSubscription($options):从高级订阅中删除一个电话号码。调用$content->$deleteSubscription($options)
内容
-
send($options):发送高级短信message: 短信内容。必需to: 电话号码数组。必需from:已注册在您的 Africa's Talking 账户上的简码。必需keyword:您的高级产品关键词linkId:"[...] 当用户向您的 onDemand 服务发送短信时,我们转发linkId到您的应用程序"retryDurationInHours:"这指定了在未将订阅消息成功发送到订阅者时,应重试多长时间"
-
createSubscription($options):创建高级订阅shortCode:映射到您的账户的高级短码。必需keyword:上述短码下的高级关键词,也映射到您的账户。必需phoneNumber:要订阅的电话号码必需checkoutToken:用于验证订阅请求的令牌必需。请参阅 令牌服务
-
fetchSubscriptions($options):获取您的高级订阅数据shortCode:映射到您的账户的高级短码。必需keyword:上述短码下的高级关键词,映射到您的账户。必需lastReceivedId:您认为的上次订阅的 ID。默认为0
-
deleteSubscription($options):从高级订阅中删除一个电话号码shortCode:映射到您的账户的高级短码。必需keyword:上述短码下的高级关键词,也映射到您的账户。必需phoneNumber:要订阅的电话号码必需
支付
-
mobileCheckout($parameters, $options):向客户的移动货币账户收费-
$parameters: 关联数组,包含以下键
productName:Africa's Talking 上的支付产品。必需providerChannel:在收费时要考虑的提供商渠道。phoneNumber:客户电话号码(国际格式)。必需currencyCode: 3位ISO格式货币代码(例如KES、USD、UGX等)。必需amount:要收取的金额。必需metadata:与交易相关联的附加数据。必需
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
mobileB2C($parameters, $options):向客户发送移动货币-
$parameters: 关联数组,包含以下键
-
productName:Africa's Talking 上的支付产品。必需 -
recipients:最多 10 个接收者的列表。每个接收者都有phoneNumber:客户电话号码(国际格式)。必需currencyCode: 3位ISO格式货币代码(例如KES、USD、UGX等)。必需amount:要支付的金额。必需reason:支付的目的。请参阅payments::REASON*以获取支持的支付原因。必需metadata:与交易相关联的附加数据。必需
-
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
mobileB2B($parameters, $options):向企业(例如银行)发送移动货币-
$parameters: 关联数组,包含以下键
productName:Africa's Talking 上的支付产品。必需provider:促成此交易的支付提供商。请参阅payments::PROVIDER*以获取支持的提供商。必需transferType:描述所进行的支付类型。请参阅payments::TRANSFER_TYPE*以获取支持的转账类型。必需destinationChannel:将收到支付款项的渠道的名称或号码。必需destinationAccount:企业在提供的目的地渠道上接收资金的名称。必需currencyCode: 3位ISO格式货币代码(例如KES、USD、UGX等)。必需amount:要支付的金额。必需requester:通过该电话号码,KPLC 在使用 B2B 购买电力令牌时发送令牌。metadata:与交易相关联的附加数据。必需
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
mobileData($parameters, $options):向客户发送移动数据-
$parameters: 关联数组,包含以下键
-
productName:Africa's Talking 上的支付产品。必需 -
recipients:接收者列表。每个接收者都有phoneNumber:客户电话号码(国际格式)。必需quantity:移动数据量。必需unit:移动数据单位。可以是MB或GB。必需validity:移动数据的有效期。必须是Day、Week或Month之一。必需metadata:与交易相关联的附加数据。必需
-
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
bankCheckoutCharge($parameters, $options):向客户的银行账户收费-
$parameters: 关联数组,包含以下键
-
productName:Africa's Talking 上的支付产品。必需 -
bankAccount:要收费的银行账户accountName:银行账户名称。必需accountNumber:账户号码。必需bankCode:我们分配的 6 位整数代码。请参阅payments::BANK*以获取支持的银行。必需dateOfBirth: 账户所有者的出生日期(格式为YYYY-MM-DD)。Zenith Bank Nigeria 必须提供。
-
currencyCode: 3位ISO格式的货币代码(目前仅支持NGN)。必填 -
amount:要收取的金额。必需 -
narration: 交易简短描述。必填 -
metadata:与交易相关联的附加数据。必需
-
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
bankCheckoutValidate($parameters): 验证银行结账费用transactionId: 银行收费请求返回的交易ID。必填otp: 由您要收费的客户提供的单次密码。必填
-
bankTransfer($parameters, $options): 向银行账户发送资金-
$parameters: 关联数组,包含以下键
-
productName:Africa's Talking 上的支付产品。必需 -
recipients:接收者列表。每个接收者都有-
bankAccount: 接收资金的银行账户accountName:银行账户名称。必需accountNumber:账户号码。必需bankCode:我们分配的 6 位整数代码。请参阅payments::BANK*以获取支持的银行。必需dateOfBirth: 账户所有者的出生日期(格式为YYYY-MM-DD)。Zenith Bank Nigeria 必须提供。
-
currencyCode: 3位ISO格式的货币代码(目前仅支持NGN)。必填 -
amount:要支付的金额。必需 -
narration: 交易简短描述。必填 -
metadata: 与交易关联的附加数据。必填
-
-
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
cardCheckoutCharge($parameters, $options): 收费客户的支付卡-
$parameters: 关联数组,包含以下键
-
productName:Africa's Talking 上的支付产品。必需 -
paymentCard: 要收费的支付卡number: 支付卡卡号。必填cvvNumber: 3或4位卡验证值。必填expiryMonth: 卡片的到期月份(例如8)。必填authToken: 支付卡的ATM PIN。必填countryCode: 卡发行国的2位国家代码(目前仅支持NG)。必填
-
checkoutToken: 在先前的交易中通过我们的API生成,作为对客户支付卡收费的结果的令牌。当使用checkoutToken时,不应填充paymentCard数据。 -
currencyCode: 3位ISO格式的货币代码(目前仅支持NGN)。必填 -
amount:要收取的金额。必需 -
narration: 交易简短描述。必填 -
metadata: 与交易关联的附加数据。必填
-
-
$options: 可选的关联数组,包含以下键
idempotencyKey: 在进行幂等请求时使用的密钥
-
-
cardCheckoutValidate($parameters): 验证卡结账费用transactionId: 来自卡收费请求的交易ID。必填otp: 由您要收费的客户提供的单次密码。必填
-
walletTransfer($parameters): 将资金从一个支付产品转移到另一个支付产品productName:Africa's Talking 上的支付产品。必需targetProductCode: 在非洲的Taling上接收资金的支付产品的唯一代码。必填currencyCode: 3位ISO格式的货币代码。必填amount: 转账金额。必填metadata: 与交易关联的附加数据。必填
-
topupStash($parameters): 将资金从支付产品转移到应用程序的存储中productName:Africa's Talking 上的支付产品。必需currencyCode: 3位ISO格式的货币代码。必填amount: 转账金额。必填metadata: 与交易关联的附加数据。必填
-
fetchProductTransactions($parameters): 获取支付产品交易-
productName:Africa's Talking 上的支付产品。必需 -
filters: 获取交易时使用的筛选器pageNumber: 获取结果的页码。从1开始。必填count: 要获取的结果数量。必填startDate: 获取时要考虑的起始日期。endDate: 获取时要考虑的结束日期。category: 获取时要考虑的类别。provider: 获取时要考虑的提供者。status: 获取时要考虑的状态。source: 获取时要考虑的来源。destination: 获取时要考虑的目的地。providerChannel: 获取时要考虑的提供者渠道。
-
-
fetchWalletTransactions($parameters): 获取支付钱包交易-
filters: 获取交易时使用的筛选器pageNumber: 获取结果的页码。从1开始。必填count: 要获取的结果数量。必填startDate: 获取时要考虑的起始日期。endDate: 获取时要考虑的结束日期。categories: 获取时要考虑的类别,以逗号分隔的列表。
-
-
findTransaction($parameters): 查找特定交易transactionId: 要查找的交易ID。必填
-
fetchWalletBalance(): 获取您的支付钱包余额
语音
-
call($options): 启动电话呼叫to: 您希望拨打的电话号码(以国际格式)。必填from: Africa's Talking上的电话号码(以国际格式)。必填
-
fetchQueuedCalls($options): 获取电话号码上的排队呼叫phoneNumber: 与您的Africa's Talking账户关联的电话号码(以国际格式)。必填name: 获取特定队列的呼叫。
-
uploadMediaFile($options): 上传语音媒体文件phoneNumber:与您的 Africa's Talking 账户关联的电话号码(国际格式)。必需url:要上传的文件的 URL。应以http(s)://开头。必需
MessageBuilder
当回调 URL 从语音 API 接收到 POST 请求时构建语音 XML。可以将操作串联起来以创建一个 XML 字符串。
$voiceActions = $voice->messageBuilder(); $xmlresponse = $voiceActions ->getDigits($options) ->say($text) ->record() ->build();
-
say($text):添加Say操作 -
text:将要读给用户听(英文)的文本。 -
play($url):添加Play操作url:音频文件的公开 URL。该文件将播放给用户听。
-
getDigits($options):添加GetDigits操作numDigits:应从用户处获取的数字数量timeout:从用户处获取数字的超时时间(秒)。finishOnKey:终止获取数字动作的键。callbackUrl:转发GetDigits操作结果的 URL。
-
dial($options):添加Dial操作phoneNumbers:要拨打的电话号码数组(国际格式)。必需record:布尔值 - 是否记录对话。sequenntial:布尔值 - 如果为phoneNumbers提供多个数字,则确定电话号码是依次拨打还是同时拨打。callerId:您想要用来拨出的 Africa's Talking 电话号码。ringBackTone:在电话接通之前用户要听到的媒体播放的 URL 位置。maxDuration:通话应持续的最大秒数。
-
conference():添加Conference操作 -
record($options):添加Record操作finishOnKey:终止录音动作的键。maxLength:录音应持续的最大秒数。timeout:从用户处获取录音的超时时间(秒)。trimSilence:布尔值 - 指定您是否想删除录音中用户静默的部分。playBeep:布尔值 - 指定 API 是否应在录音开始时播放蜂鸣声。callbackUrl:转发Recording操作结果的 URL。
-
enqueue($options):添加Enqueue操作holdMusic:用户在等待时要播放的文件的 URL。name:要放置电话的队列名称。
-
deqeue($options):添加Dequeue动作phoneNumber:用户用来加入队列的与您的 Africa's Talking 账户关联的电话号码。必需name:您要从其中退出的队列名称。
-
reject():添加Reject操作 -
redirect($url):添加Redirect操作url:转移通话控制权的 URL。
-
build():在串联一些上述操作后构建 XML。
Token
-
createCheckoutToken($options):创建结账令牌phoneNumber:为创建结账令牌的电话号码
-
generateAuthToken():生成用于验证 API 请求的 auth 令牌,而不是您的 API 密钥。