All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.binarywang.wx.miniapp.bean.delivery.base.WxMaDeliveryBaseRequest Maven / Gradle / Ivy

There is a newer version: 4.6.7.B
Show newest version
package cn.binarywang.wx.miniapp.bean.delivery.base;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import lombok.AccessLevel;
import lombok.Data;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

/**
 * 微信小程序 即时配送 基础请求参数.
 *
 * @author Luo
 * @version 1.0
 * created on  2021-10-14 10:36
 */
@Data
@Accessors(chain = true)
public abstract class WxMaDeliveryBaseRequest implements Serializable {

    private static final long serialVersionUID = -6811550517417623460L;

    /**
     * 配送公司ID.
     * 
     * 是否必填:是
     * 
*/ @SerializedName("delivery_id") private String deliveryId; /** * 唯一标识订单的 ID,由商户生成, 不超过 128 字节. *
     * 是否必填:是
     * 
*/ @SerializedName("shop_order_id") private String shopOrderId; /** * 下单用户的openid. *
     * 是否必填:是
     * 
*/ @SerializedName("openid") private String openid; /** * 商家门店编号,在配送公司登记,如果只有一个门店,美团闪送必填, 值为店铺id. *
     * 是否必填:是
     * 
*/ @SerializedName("shop_no") private String shopNo; /** * 商家id,由配送公司分配的appKey. *
     * 是否必填:是
     * 
*/ @SerializedName("shopid") private String shopId; /** * 用配送公司提供的appSecret加密的校验串. *
     * 除了平台本身的加解密和签名,和订单相关的请求还需要带上运力侧签名delivery_sign,签名规则为
     * 如果接口请求里有字段shop_order_id ,则delivery_sign=SHA1(shopid + shop_order_id + AppSecret),其中shopid对应运力侧的appkey,shop_order_id对应订单id,AppSecret即配送公司帐号对应的秘钥
     * 如果请求里没有字段shop_order_id ,则delivery_sign=SHA1(shopid + AppSecret),其中shopid对应运力侧的appkey,AppSecret即配送公司帐号对应的秘钥
     * 示例:shopid=“test_shop_id”,shop_order_id =“test_shop_order_id”, AppSecret=“test_app_secrect”,则delivery_sign=“a93d8d6bae9a9483c1b1d4e8670e7f6226ec94cb”
     * 是否必填:是
     * 
*/ @Setter(AccessLevel.NONE) @SerializedName("delivery_sign") private String deliverySign; /** * 配送公司分配的appSecret. *
     * 是否必填:是
     * 
*/ @Expose private String appSecret; /** * 获取签名. *
     * 除了平台本身的加解密和签名,和订单相关的请求还需要带上运力侧签名delivery_sign,签名规则为
     * 如果接口请求里有字段shop_order_id ,则delivery_sign=SHA1(shopid + shop_order_id + AppSecret),其中shopid对应运力侧的appkey,shop_order_id对应订单id,AppSecret即配送公司帐号对应的秘钥
     * 如果请求里没有字段shop_order_id ,则delivery_sign=SHA1(shopid + AppSecret),其中shopid对应运力侧的appkey,AppSecret即配送公司帐号对应的秘钥
     * 示例:shopid=“test_shop_id”,shop_order_id =“test_shop_order_id”, AppSecret=“test_app_secrect”,则delivery_sign=“a93d8d6bae9a9483c1b1d4e8670e7f6226ec94cb”
     * 是否必填:是
     * 
* * @return 结果 */ public String getDeliverySign() { if (StringUtils.isBlank(getShopId()) || StringUtils.isBlank(getAppSecret())) { throw new RuntimeException("shopId or appSecret can not be empty"); } String str = getShopId(); if (StringUtils.isNotBlank(getShopOrderId())) { str = str.concat(getShopOrderId()); } str = str.concat(getAppSecret()); this.deliverySign = DigestUtils.sha1Hex(str); return this.deliverySign; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy