Subiendo proyecto completo sin restricciones de git ignore
This commit is contained in:
102
vendor/osenco/mpesa/examples/MpesaB2CController.php
vendored
Normal file
102
vendor/osenco/mpesa/examples/MpesaB2CController.php
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Payment;
|
||||
use Illuminate\Http\Request;
|
||||
use Osen\Mpesa\B2C;
|
||||
|
||||
class MpesaController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
B2C::init(
|
||||
array(
|
||||
"env" => "sandbox",
|
||||
"shortcode" => "173527",
|
||||
"headoffice" => "173527",
|
||||
"key" => "Your Consumer Key",
|
||||
"secret" => "Your Consumer Secret",
|
||||
"username" => "Your Org Username",
|
||||
"password" => "Your Org Password",
|
||||
"validation_url" => url("disburse/validate"),
|
||||
"confirmation_url" => url("disburse/confirm"),
|
||||
"callback_url" => url("disburse/reconcile"),
|
||||
"results_url" => url("disburse/timeout"),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function pay(Request $request)
|
||||
{
|
||||
$data = $request->all();
|
||||
|
||||
try {
|
||||
$request = B2C::send($request->phone, $request->amount, $request->command, $request->remarks, $request->occassion, function ($response) {
|
||||
$ConversationID = $response["ConversationID"];
|
||||
$OriginatorConversationID = $response["OriginatorConversationID"];
|
||||
$ResponseCode = $response["ResponseCode"];
|
||||
$ResponseDescription = $response["ResponseDescription"];
|
||||
|
||||
// TIP: Save $OriginatorConversationID in the database, and use it as a key for update
|
||||
$data["request_id"] = $OriginatorConversationID;
|
||||
$payment = Payment::create($data);
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
return back();
|
||||
} catch (\Exception $e) {
|
||||
return array("msg" => $e->getMessage);
|
||||
}
|
||||
}
|
||||
|
||||
public function confirmation()
|
||||
{
|
||||
return B2C::reconcile(function ($response) {
|
||||
$Result = $response["Result"];
|
||||
$ResultType = $Result["ResultType"];
|
||||
$ResultCode = $Result["ResultCode"];
|
||||
$ResultDesc = $Result["ResultDesc"];
|
||||
$OriginatorConversationID = $Result["OriginatorConversationID"];
|
||||
$ConversationID = $Result["ConversationID"];
|
||||
$TransactionID = $Result["TransactionID"];
|
||||
$ResultParameters = $Result["ResultParameters"];
|
||||
$ResultParameter = $Result["ResultParameters"]["ResultParameter"];
|
||||
$TransactionReceipt = $ResultParameter[0]["Value"];
|
||||
$TransactionAmount = $ResultParameter[1]["Value"];
|
||||
$B2CWorkingAccountAvailableFunds = $ResultParameter[2]["Value"];
|
||||
$B2CUtilityAccountAvailableFunds = $ResultParameter[3]["Value"];
|
||||
$TransactionCompletedDateTime = $ResultParameter[4]["Value"];
|
||||
$ReceiverPartyPublicName = $ResultParameter[5]["Value"];
|
||||
$B2CChargesPaidAccountAvailableFunds = $ResultParameter[6]["Value"];
|
||||
$B2CRecipientIsRegisteredCustomer = $ResultParameter[7]["Value"];
|
||||
$ReferenceData = $Result["ReferenceData"];
|
||||
$ReferenceItem = $ReferenceData["ReferenceItem"];
|
||||
$QueueTimeoutURL = $ReferenceItem[0]["Value"];
|
||||
|
||||
// Update Database record with $TransactionID as the MPESA receipt number where $OriginatorConversationID
|
||||
$payment = Payment::where("request_id", $OriginatorConversationID)->first();
|
||||
$payment->receipt = $TransactionID;
|
||||
$payment->save();
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
public function results()
|
||||
{
|
||||
return B2C::results();
|
||||
}
|
||||
}
|
||||
127
vendor/osenco/mpesa/examples/MpesaController.php
vendored
Normal file
127
vendor/osenco/mpesa/examples/MpesaController.php
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Payment;
|
||||
use Illuminate\Http\Request;
|
||||
use Osen\Mpesa\STK;
|
||||
use Osen\Mpesa\C2B;
|
||||
|
||||
class MpesaController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
C2B::init(
|
||||
array(
|
||||
"env" => "sandbox",
|
||||
"type" => 4,
|
||||
"shortcode" => "174379",
|
||||
"key" => "Your Consumer Key",
|
||||
"secret" => "Your Consumer Secret",
|
||||
"validation_url" => url("lipwa/validate"),
|
||||
"confirmation_url" => url("lipwa/confirm"),
|
||||
"timeout_url" => url("lipwa/timeout"),
|
||||
)
|
||||
);
|
||||
|
||||
STK::init(
|
||||
array(
|
||||
"env" => "sandbox",
|
||||
"type" => 4,
|
||||
"shortcode" => "173527",
|
||||
"headoffice" => "173527",
|
||||
"key" => "Your Consumer Key",
|
||||
"secret" => "Your Consumer Secret",
|
||||
"passkey" => "Your Online Passkey",
|
||||
"validation_url" => url("lipwa/validate"),
|
||||
"callback_url" => url("lipwa/reconcile"),
|
||||
"timeout_url" => url("lipwa/timeout"),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function pay(Request $request)
|
||||
{
|
||||
$data = $request->all();
|
||||
|
||||
try {
|
||||
$res = STK($request->phone, $request->amount, $request->reference);
|
||||
|
||||
if (!isset($res["errorCode"])) {
|
||||
$data["ref"] = $res->MerchantRequestID;
|
||||
$payment = Payment::create($data);
|
||||
|
||||
if ($payment) {
|
||||
return array("msg" => "saved");
|
||||
} else {
|
||||
return array("msg" => "failed");
|
||||
}
|
||||
|
||||
return back();
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return array("msg" => $e->getMessage());
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function reconcile(Request $request, $method = "mpesa")
|
||||
{
|
||||
if ($method == "mpesa") {
|
||||
$response = STK::reconcile(function ($data) {
|
||||
$payment = Payment::where("mpesa", $data["MerchantRequestID"])->first();
|
||||
$payment->status = "Paid";
|
||||
|
||||
return $payment->save();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function validation()
|
||||
{
|
||||
return STK::validate();
|
||||
}
|
||||
|
||||
public function confirmation()
|
||||
{
|
||||
return C2B::confirm(function ($response) {
|
||||
// Process $response
|
||||
$TransactionType = $response["TransactionType"];
|
||||
$TransID = $response["TransID"];
|
||||
$TransTime = $response["TransTime"];
|
||||
$TransAmount = $response["TransAmount"];
|
||||
$BusinessShortCode = $response["BusinessShortCode"];
|
||||
$BillRefNumber = $response["BillRefNumber"];
|
||||
$InvoiceNumber = $response["InvoiceNumber"];
|
||||
$OrgAccountBalance = $response["OrgAccountBalance"];
|
||||
$ThirdPartyTransID = $response["ThirdPartyTransID"];
|
||||
$MSISDN = $response["MSISDN"];
|
||||
$FirstName = $response["FirstName"];
|
||||
$MiddleName = $response["MiddleName"];
|
||||
$LastName = $response["LastName"];
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
public function results()
|
||||
{
|
||||
return STK::results();
|
||||
}
|
||||
|
||||
public function timeout()
|
||||
{
|
||||
return STK::timeout();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user