歡迎使用拉卡拉開放平臺(tái).NET SDK
為了幫助開發(fā)者快速接入拉卡拉開放平臺(tái),拉卡拉提供了DotNet SDK, 為各個(gè)合作伙伴的技術(shù)人員封裝了請(qǐng)求的簽名和響應(yīng)的驗(yàn)簽,簡(jiǎn)化了系統(tǒng)的開發(fā)工作。
獲取 SDK
開發(fā)語(yǔ)言 | 資源下載 | 目標(biāo)框架 |
dotNet | .NET SDK | net6.0 |
流程說(shuō)明
Lakala DotSDK與拉卡拉開放平臺(tái)交互處理流程如下:
針對(duì)以上處理流程,
1. 左側(cè)為客戶主動(dòng)發(fā)起的Request-Response的流程:拉卡拉DotNet SDK封裝請(qǐng)求加密(若需要)、加簽,返回解簽、解密。
2. 右側(cè)為拉卡拉開放平臺(tái)發(fā)起的通知的流程:拉卡拉DotNet SDK也封裝了解析處理通知報(bào)文的類以及標(biāo)準(zhǔn)返回內(nèi)容。
重點(diǎn)類以及方法說(shuō)明
類名 | 說(shuō)明 |
LakalaOpenConfig
| 全局配置類,其關(guān)鍵信息 AppId,//客戶在拉卡拉開放平臺(tái)側(cè)的開立的AppId SerialNo,//客戶的私鑰的證書序列號(hào) Sm4Key,//客戶在拉卡拉開放平臺(tái)側(cè)生成的國(guó)密4的key PriPem,//客戶的私鑰證書String,與PriPemPath二選一 PriPemPath,//客戶的私鑰的文件地址,與PriPem二選一 PubCert,//拉卡拉的公鑰證書String,與PubCertPath二選一 PubCertPath,//拉卡拉的公鑰證書文件地址,與PubCert二選一 其中 1.客戶的私鑰的作用請(qǐng)求報(bào)文簽名 2.拉卡拉的公鑰證書返回報(bào)文驗(yàn)簽 |
RequestConfig | 適用于單個(gè)請(qǐng)求的 ReqEncrpt:是否要對(duì)請(qǐng)求進(jìn)行加密(SM4算法,密鑰為LakalaOpenConfig的Sm4Key) RespDeccrpt:是否要對(duì)返回進(jìn)行解密(SM4算法,密鑰為LakalaOpenConfig的Sm4Key) |
LakalaOpenAPIPoster
| 調(diào)用拉卡拉開放平臺(tái)的入口類,其中只有一個(gè)方PostRawAuthedAsync
該方法的請(qǐng)求入?yún)⒎謩e為: body:請(qǐng)求json格式 url:具體的拉卡拉開放平臺(tái)的接口。 requestConfig:?jiǎn)蝹€(gè)請(qǐng)求的Config,參見(jiàn)RequestConfig說(shuō)明
返回參數(shù) Task<ILakalaResponse> 其中ILakalaResponse方法為 1. GRawText,返回的原始文本,正常情況使用該方法就可以獲得返回json內(nèi)容。 2. GetOriginHttpResonse,返回的原始HttpReponse。 |
LakalaNotifyParser
| 通知回調(diào)的驗(yàn)證類,客戶處理流程 1. 客戶接到拉卡拉通知回調(diào)之后使用該類對(duì)內(nèi)容進(jìn)行驗(yàn)證簽名; 2. 簽名驗(yàn)證通過(guò)之后,在進(jìn)行業(yè)務(wù)處理; 3. 處理完成之后使用LakalaNotifyResponse封裝數(shù)據(jù)返回給拉卡拉的平臺(tái) |
示例代碼
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,可按照測(cè)試環(huán)境要求配置。
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());
}復(fù)制FAQ&Tips(常見(jiàn)問(wèn)題以及建議)
Q1:如何支持多個(gè)AppId
A1:可以創(chuàng)建多個(gè)LakalaOpenConfig,然后創(chuàng)建多個(gè)LakalaOpenAPIPoster實(shí)例
Q2:若需要反饋問(wèn)題或者提供建議,是否有渠道。
A2:
2. 與具體的銷售同學(xué)聯(lián)系。

