拉卡拉支付进行中
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->setMerchantNo('822290059430BFA');
|
||||
$request->setTermNo('D9261078');
|
||||
$request->setMerchantNo('82249307372005M');
|
||||
$request->setTermNo('L4678871');
|
||||
$request->setOutTradeNo(date('YmdHis', time()));
|
||||
$request->setAccountType('WECHAT');
|
||||
$request->setTransType('71');
|
||||
@ -109,20 +109,27 @@ class Demo extends Api
|
||||
|
||||
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());
|
||||
// if ($response->getRespData()) {
|
||||
// print_r($response->getRespData());
|
||||
// print_r($response->getAccRespFields());
|
||||
// }
|
||||
// else {
|
||||
// print_r($response);
|
||||
// }
|
||||
$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());
|
||||
|
||||
|
||||
} catch (\Lakala\OpenAPISDK\V3\ApiException $e) {
|
||||
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
|
||||
* @return void
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace app\common\model\school\activity\order;
|
||||
|
||||
use addons\epay\library\Service;
|
||||
use addons\third\model\Third;
|
||||
use app\admin\model\Admin;
|
||||
use app\admin\model\Manystore;
|
||||
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;
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use app\common\model\manystore\LakalaBusiness;
|
||||
use app\common\model\school\activity\Activity;
|
||||
use think\Model;
|
||||
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()
|
||||
{
|
||||
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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user