拉卡拉支付进行中
This commit is contained in:
parent
d88aeb6621
commit
47f0ba1119
@ -56,8 +56,8 @@ class Demo extends Api
|
|||||||
// 主扫交易参数
|
// 主扫交易参数
|
||||||
$request = new \Lakala\OpenAPISDK\V3\Model\TransPreorderRequest();
|
$request = new \Lakala\OpenAPISDK\V3\Model\TransPreorderRequest();
|
||||||
// 必填参数
|
// 必填参数
|
||||||
$request->setMerchantNo('822290059430BFA');
|
$request->setMerchantNo('82249307372005M');
|
||||||
$request->setTermNo('D9261078');
|
$request->setTermNo('L4678871');
|
||||||
$request->setOutTradeNo(date('YmdHis', time()));
|
$request->setOutTradeNo(date('YmdHis', time()));
|
||||||
$request->setAccountType('WECHAT');
|
$request->setAccountType('WECHAT');
|
||||||
$request->setTransType('71');
|
$request->setTransType('71');
|
||||||
@ -109,20 +109,27 @@ class Demo extends Api
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$response = $api->transPreorder($request);
|
$response = $api->transPreorder($request);
|
||||||
if ($response->getRespData()) {
|
// if ($response->getRespData()) {
|
||||||
print_r($response->getRespData());
|
// print_r($response->getRespData());
|
||||||
print_r($response->getAccRespFields());
|
// print_r($response->getAccRespFields());
|
||||||
}
|
// }
|
||||||
else {
|
// else {
|
||||||
print_r($response);
|
// print_r($response);
|
||||||
}
|
// }
|
||||||
echo $response->getCode();
|
$bbs_code = $response->getCode();
|
||||||
|
$responsedata = json_decode($response->getOriginalText(),true);
|
||||||
|
if($bbs_code != "BBS00000"){
|
||||||
|
|
||||||
|
var_dump($responsedata["msg"],$responsedata["code"]);
|
||||||
|
}else{
|
||||||
|
# 响应原文
|
||||||
|
echo $response->getOriginalText();
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// # 响应头信息
|
||||||
|
// print_r($response->getHeaders());
|
||||||
|
|
||||||
# 响应头信息
|
|
||||||
print_r($response->getHeaders());
|
|
||||||
|
|
||||||
# 响应原文
|
|
||||||
echo $response->getOriginalText();
|
|
||||||
} catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
|
} catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
|
||||||
echo $e->getMessage();
|
echo $e->getMessage();
|
||||||
}
|
}
|
||||||
|
@ -325,6 +325,15 @@ class Activity extends BaseModel
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function lakala()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(LakalaBusiness::class, 'user_id', 'user_id', [], 'LEFT')->setEagerlyType(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** 更新或新增后判断
|
/** 更新或新增后判断
|
||||||
* @param $classes_activity_id
|
* @param $classes_activity_id
|
||||||
* @return void
|
* @return void
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace app\common\model\school\activity\order;
|
namespace app\common\model\school\activity\order;
|
||||||
|
|
||||||
use addons\epay\library\Service;
|
use addons\epay\library\Service;
|
||||||
|
use addons\third\model\Third;
|
||||||
use app\admin\model\Admin;
|
use app\admin\model\Admin;
|
||||||
use app\admin\model\Manystore;
|
use app\admin\model\Manystore;
|
||||||
use app\common\model\BaseModel;
|
use app\common\model\BaseModel;
|
||||||
@ -2734,6 +2735,127 @@ class Order extends BaseModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** 得到拉卡拉订单支付参数
|
||||||
|
* @param $order_no
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function getLakalaOrderPayParams($order_no,$platform ="wechat",$open_id = null){
|
||||||
|
$order = self::getOrder($order_no);
|
||||||
|
$detail = $order->detail;
|
||||||
|
if(!$detail)throw new \Exception("找不到活动!");
|
||||||
|
$lakalaBusiness = LakalaBusiness::where("user_id",$detail["user_id"]);
|
||||||
|
$lakala = $lakalaBusiness->where("status",config("site.lakala_test_switch")? '2':'1' )->find();
|
||||||
|
if(!$lakala)throw new \Exception("商户未开通拉卡拉钱包不具备收款能力!");
|
||||||
|
|
||||||
|
//金额需大于0
|
||||||
|
if($order["totalprice"] <= 0)throw new \Exception("金额需大于0!");
|
||||||
|
// 单位分
|
||||||
|
$totalAmount = (int)bcmul(100,$order["totalprice"] ,0);
|
||||||
|
|
||||||
|
//lakala
|
||||||
|
//拼装支付参数
|
||||||
|
$lakala = lakala_sdk();
|
||||||
|
$tradeLocationInfo = new \Lakala\OpenAPISDK\V3\Model\TradeLocationInfo($lakala->getClientIp());
|
||||||
|
// 主扫交易Api
|
||||||
|
$api = $lakala->v3(\Lakala\OpenAPISDK\V3\Api\TransPreorderApi::class);
|
||||||
|
// 主扫交易参数
|
||||||
|
$request = new \Lakala\OpenAPISDK\V3\Model\TransPreorderRequest();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 必填参数
|
||||||
|
$request->setMerchantNo($lakala["merchant_no"]);
|
||||||
|
$request->setTermNo($lakala["online_scanning_terminal_no"]);
|
||||||
|
$request->setOutTradeNo($order["order_no"]);
|
||||||
|
$request->setAccountType('WECHAT');
|
||||||
|
$request->setTransType('71');
|
||||||
|
$request->setTotalAmount($totalAmount); // 单位分
|
||||||
|
$request->setLocationInfo($tradeLocationInfo);
|
||||||
|
$request->setSubject('多样青春搭+活动:'.$detail["title"].'报名支付');
|
||||||
|
$type = "lakala";
|
||||||
|
$method = "miniapp";
|
||||||
|
// 非必填参数
|
||||||
|
// $request->setBusiMode('');
|
||||||
|
// $request->setPayOrderNo('');
|
||||||
|
$notifyurl = request()->root(true) . '/api/school.newactivity.pay/notifyx/paytype/' . $type. '/platform/' . $method;
|
||||||
|
|
||||||
|
$request->setNotifyUrl($notifyurl);
|
||||||
|
// $request->setSettleType('');
|
||||||
|
// $request->setRemark('');
|
||||||
|
// $request->setPromoInfo('');
|
||||||
|
// $request->setOutOrderNo('');
|
||||||
|
// $request->setPnrInsIdCd('');
|
||||||
|
|
||||||
|
// 没有 openid 默认拿下单人的 openid
|
||||||
|
$oauth = Third::where([
|
||||||
|
'user_id' => $order->user_id,
|
||||||
|
'platform' => $platform,
|
||||||
|
'apptype' => $method
|
||||||
|
])->find();
|
||||||
|
|
||||||
|
if(!$open_id)$openid = $oauth ? $oauth->openid : '';
|
||||||
|
if (!$openid) {
|
||||||
|
// 缺少 openid
|
||||||
|
throw new \Exception("请您重新授权登录再下单");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 微信主扫场景 - 账户端业务信息
|
||||||
|
$acc_busi_fields = $lakala->getTradePreorderWechaAccBusiFields($openid);
|
||||||
|
|
||||||
|
// $acc_busi_fields->setTimeoutExpress('');
|
||||||
|
// $acc_busi_fields->setSubAppid('wxd7e2deffbaa22254');
|
||||||
|
// $acc_busi_fields->setUserId('ohjUL7XWERU9rDfeNdvbxxil8jZY');
|
||||||
|
// $acc_busi_fields->setDetail('');
|
||||||
|
// $acc_busi_fields->setGoodsTag('');
|
||||||
|
// $acc_busi_fields->setAttach('');
|
||||||
|
// $acc_busi_fields->setDeviceInfo('');
|
||||||
|
// $acc_busi_fields->setLimitPay('');
|
||||||
|
// $acc_busi_fields->setSceneInfo('');
|
||||||
|
// $acc_busi_fields->setLimitPayer('');
|
||||||
|
|
||||||
|
// $detail = new \Lakala\OpenAPISDK\V3\Model\TradePreorderWechaDetail;
|
||||||
|
// $detail->setCostPrice('1.00');
|
||||||
|
// $detail->setReceiptId('');
|
||||||
|
|
||||||
|
// $goods_detail = new \Lakala\OpenAPISDK\V3\Model\TradePreorderWechaGoodsDetail;
|
||||||
|
// $goods_detail->setGoodsId('3452234');
|
||||||
|
//// $goods_detail->setWxpayGoodsId('');
|
||||||
|
//// $goods_detail->setGoodsName('测试商品1');
|
||||||
|
// $goods_detail->setQuantity(1.0);
|
||||||
|
// $goods_detail->setPrice(1.0);
|
||||||
|
|
||||||
|
// $detail->setGoodsDetail([$goods_detail]);
|
||||||
|
//
|
||||||
|
// $acc_busi_fields->setDetail($detail);
|
||||||
|
//
|
||||||
|
//// 账户端业务信息
|
||||||
|
$request->setAccBusiFields($acc_busi_fields);
|
||||||
|
|
||||||
|
// try {
|
||||||
|
$response = $api->transPreorder($request);
|
||||||
|
if ($response->getRespData()) {
|
||||||
|
print_r($response->getRespData());
|
||||||
|
print_r($response->getAccRespFields());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print_r($response);
|
||||||
|
}
|
||||||
|
echo $response->getCode();
|
||||||
|
|
||||||
|
# 响应头信息
|
||||||
|
print_r($response->getHeaders());
|
||||||
|
|
||||||
|
# 响应原文
|
||||||
|
echo $response->getOriginalText();
|
||||||
|
// } catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
|
||||||
|
// echo $e->getMessage();
|
||||||
|
// }
|
||||||
|
|
||||||
|
return $response->getOriginalText();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace app\common\model\school\activity\order;
|
namespace app\common\model\school\activity\order;
|
||||||
|
|
||||||
use app\common\model\BaseModel;
|
use app\common\model\BaseModel;
|
||||||
|
use app\common\model\manystore\LakalaBusiness;
|
||||||
use app\common\model\school\activity\Activity;
|
use app\common\model\school\activity\Activity;
|
||||||
use think\Model;
|
use think\Model;
|
||||||
use traits\model\SoftDelete;
|
use traits\model\SoftDelete;
|
||||||
@ -206,6 +207,12 @@ class OrderDetail extends BaseModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function lakala()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(LakalaBusiness::class, 'user_id', 'user_id', [], 'LEFT')->setEagerlyType(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function order()
|
public function order()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
return $this->belongsTo(Order::class, 'activity_order_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||||
|
@ -4,6 +4,10 @@ namespace bw\lakala;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 拉卡拉服务工厂
|
* 拉卡拉服务工厂
|
||||||
|
* @package bw\lakala
|
||||||
|
* @author 焦钰锟
|
||||||
|
* @date 2025/08/06
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
class LakalaService
|
class LakalaService
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user