歡迎使用拉卡拉開放平臺.NET SDK
為了幫助開發者快速接入拉卡拉開放平臺,拉卡拉提供了DotNet SDK, 為各個合作伙伴的技術人員封裝了請求的簽名和響應的驗簽,簡化了系統的開發工作。
獲取 SDK
開發語言 | 資源下載 | 目標框架 |
dotNet | .NET SDK | net6.0 |
流程說明
Lakala DotSDK與拉卡拉開放平臺交互處理流程如下:
針對以上處理流程,
1. 左側為客戶主動發起的Request-Response的流程:拉卡拉DotNet SDK封裝請求加密(若需要)、加簽,返回解簽、解密。
2. 右側為拉卡拉開放平臺發起的通知的流程:拉卡拉DotNet SDK也封裝了解析處理通知報文的類以及標準返回內容。
重點類以及方法說明
類名 | 說明 |
LakalaOpenConfig
| 全局配置類,其關鍵信息 AppId,//客戶在拉卡拉開放平臺側的開立的AppId SerialNo,//客戶的私鑰的證書序列號 Sm4Key,//客戶在拉卡拉開放平臺側生成的國密4的key PriPem,//客戶的私鑰證書String,與PriPemPath二選一 PriPemPath,//客戶的私鑰的文件地址,與PriPem二選一 PubCert,//拉卡拉的公鑰證書String,與PubCertPath二選一 PubCertPath,//拉卡拉的公鑰證書文件地址,與PubCert二選一 其中 1.客戶的私鑰的作用請求報文簽名 2.拉卡拉的公鑰證書返回報文驗簽 |
RequestConfig | 適用于單個請求的 ReqEncrpt:是否要對請求進行加密(SM4算法,密鑰為LakalaOpenConfig的Sm4Key) RespDeccrpt:是否要對返回進行解密(SM4算法,密鑰為LakalaOpenConfig的Sm4Key) |
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. 與具體的銷售同學聯系。

