欢迎使用拉卡拉开放平台.NET SDK

lakala 1周前 ( 11-09 17:58 ) 51

为了帮助开发者快速接入拉卡拉开放平台,拉卡拉提供了DotNet SDK, 为各个合作伙伴的技术人员封装了请求的签名和响应的验签,简化了系统的开发工作。

获取 SDK

开发语言

资源下载

目标框架

dotNet

.NET SDK

net6.0

流程说明

Lakala  DotSDK与拉卡拉开放平台交互处理流程如下:

image.png

针对以上处理流程,

1. 左侧为客户主动发起的Request-Response的流程:拉卡拉DotNet SDK封装请求加密(若需要)、加签,返回解签、解密。

2. 右侧为拉卡拉开放平台发起的通知的流程:拉卡拉DotNet SDK也封装了解析处理通知报文的类以及标准返回内容。

重点类以及方法说明

类名

说明

LakalaOpenConfig

 

全局配置类,其关键信息

AppId//客户在拉卡拉开放平台侧的开立的AppId

SerialNo//客户的私钥的证书序列号

Sm4Key//客户在拉卡拉开放平台侧生成的国密4key

PriPem//客户的私钥证书String,与PriPemPath二选一

PriPemPath//客户的私钥的文件地址,与PriPem二选一

PubCert//拉卡拉的公钥证书String,与PubCertPath二选一

PubCertPath//拉卡拉的公钥证书文件地址,与PubCert二选一

其中

1.客户的私钥的作用请求报文签名

2.拉卡拉的公钥证书返回报文验签

RequestConfig

适用于单个请求的

ReqEncrpt:是否要对请求进行加密(SM4算法,密钥为LakalaOpenConfigSm4Key

RespDeccrpt:是否要对返回进行解密(SM4算法,密钥为LakalaOpenConfigSm4Key

LakalaOpenAPIPoster

 

调用拉卡拉开放平台的入口类,其中只有一个方PostRawAuthedAsync

 

该方法的请求入参分别为:

body:请求json格式

url:具体的拉卡拉开放平台的接口。

requestConfig:单个请求的Config,参见RequestConfig说明

 

返回参数

Task<ILakalaResponse> 其中ILakalaResponse方法为

1. GRawText,返回的原始文本,正常情况使用该方法就可以获得返回json内容。

2. GetOriginHttpResonse,返回的原始HttpReponse。

LakalaNotifyParser

 

通知回调的验证类,客户处理流程

1. 客户接到拉卡拉通知回调之后使用该类对内容进行验证签名;

2. 签名验证通过之后,在进行业务处理;

3. 处理完成之后使用LakalaNotifyResponse封装数据返回给拉卡拉的平台

示例代码

 public async void TestLakalaOpenAPIPosterAsync()
        {
            ServiceCollection services = new ServiceCollection();
            services.AddHttpClient();
            var loggerFactory = LoggerFactory.Create(builder =>
            {   
                builder.AddFilter("Microsoft", LogLevel.Warning)
                    .AddFilter("System", LogLevel.Warning)
                    .AddFilter("SampleApp.Program", LogLevel.Debug);
            });
           IHttpClientFactory factory = services
            .BuildServiceProvider()
            .GetRequiredService<IHttpClientFactory>();
            LakalaOpenAPIPoster lakalaOpenAPIPoster=new LakalaOpenAPIPoster(loggerFactory,factory,config);
            //这里的config就是LakalaOpenConfig,可按照测试环境要求配置。
            string body=@"{""out_org_code"":""OP00000003"",""req_time"":""20250227222500"",""version"":""3.0"",""req_data"":{""merchant_no"":""822290059430BBW"",""term_no"":""D9257968"",""out_trade_no"":""25022713010000000000000000415033""}}";
            string url="https://test.wsmsd.cn/sit"+"/api/v3/labs/query/tradequery";
            ILakalaResponse response= await lakalaOpenAPIPoster.PostRawAuthedAsync(body,url,new RequestConfig());
             Assert.True(response.GetOriginHttpResonse().StatusCode==HttpStatusCode.OK);
           Console.WriteLine("------test---");
loggerFactory.CreateLogger("Test").LogInformation(response.GetRawText());
            Console.WriteLine(response.GetRawText());
         }复制

FAQ&Tips(常见问题以及建议)

Q1:如何支持多个AppId

A1:可以创建多个LakalaOpenConfig,然后创建多个LakalaOpenAPIPoster实例

Q2:若需要反馈问题或者提供建议,是否有渠道。

A2

2. 与具体的销售同学联系。


The End