简介
RsCode.Payment软商网络开发的第三方支付平台SDK,使用.net技术开发,帮助应用快速接入支付系统
支持多个商户号同时支付,开发包包含支付宝sdk,微信支付sdk,抖音支付sdk
快速入门
引用
RsCode.Payment.Tenapy.dll
或RsCode.Payment.Alipay.dll
在项目根目录下创建pay.json文件,配置支付参数,内容如下
pay.json配置
json"Default": { "TenpayMchId": "1425xxxx", //默认微信支付商户号 "AppId": "wx7c8296xxxxx"//默认应用Id }, "Payment": [ { "PaymentStatus": true, "PaymentChannel": 1, //支付渠道类型 1微信支付 2支付宝 "Rate": 0.6, "MchId": "1425162102", //商户号 "APIKey": "", //微信支付APIkey "APIKeyV3": "", //微信支付APIkey v3 "CertPassword": "1425162102", //证书密码,默认为商户号 "PrivateKey": "cert\\1425162102\\apiclient_cert.p12", //私钥p12证书路径 "NotifyUrl": "https://xxx/tenpay/notify", //支付回调地址 "MchType": 0 }, { "PaymentStatus": true, "PaymentChannel": 2, //支付渠道类型 1微信支付 2支付宝 "Rate": 0.6, "MchId": "20210021xxxxxxx", "PublicKey": "cert\\alipay\\appCertPublicKey_xxxxxxx.crt", //应用的公钥 "PrivateKey":"MIIEpAxxxxxxxxxxxxxxxxxx", //应用私钥,使用支付宝密钥工具将生成的私钥转成PKCS1格式后使用 "PlatformPublicKey": "cert\\alipay\\alipayCertPublicKey_RSA2.crt", "PlatformRootCert": "cert\\alipay\\alipayRootCert.crt", "NotifyUrl": "/alipay/notify", "MchType": "0" } ], "App": [ { "AppId": "wx4d99c02xxx", "MchId": "1487740992", "Token": "", "AppSecret": "ab5a2daa9", "PayChannel": 1, "Description": "weihuo mp", "AppType": 1 } ],
证书文件存储路径
/cert/
下规则:公钥,私钥是路径还是内容的规则, 如果以cert开头视为证书文件 ,否则为证书内容
调用支付
csharpITenpayClient tenpay; public Demo(IEnumerable<ITenpayClient> _tenpay) { tenpay = _tenpay.FirstOrDefault(p => p.Ver == "3") ; } public void ff(){ var options= tenpay.UseMchId("mchid") //tenpay.SendAsync<>() }
实例代码
public class Service
{
ITenpayClient tenpay; //微信支付客户端
IAlipayClient alipay; //支付宝客户端
public Service(ITenpayClient _tenpay,IAlipayClient _alipay)
{
tenpay=_tenpay;
//设置支付api版本
tenpay = _tenpay.FirstOrDefault(p => p.Ver == "2");
alipay=_alipay;
}
public async Task TestPay()
{
//使用支付配置
tenpay.UseMchId(mchId);
var redpack = new RedpacketSendRequest(info.OrderNo,
options.MchId,
"软商网络",
appId,
info.OpenId,
"感谢您参与优惠活动",
"优惠活动",
"参与越多得越多",
0 - info.WidthdrawalAmount,
"PRODUCT_2"
);
var ret = await tenpay.SendAsync<RedpacketSendResponse>(redpack);
}
}
实例项目
交易宝收款软件是使用这个库进行开发的应用
PC网站 时,可以显示二维码 两种做法: 1.使用jsapi接口,公众号支付时使用 订单创建后,在业务服务器完成预支付信息,生成二维码图片返给前端,前端显示图片 ;
2.native接口,PC端直接支付时使用 订单创建后,请求native接口,它返回微信支付的字符串,由前端生成二维码图片并显示
名词解释
支付场景(pay_scene)
app发起支付的场景,取值范围 1jsapi 2app 3 native
支付渠道(pay_channel)
第三方支付信息 取值范围 1微信 2支付宝
支付客户端
以应用为单位,系统为应用分配唯一的clientId 每个应用只能对应一种支付场景 每个clientId可以分配多个商户号
注意事项
pay.json 证书使用p12证书 相对网站的路径 例 cert/apicert.p12
支付回调地址 可以添加上商户号 例: tenpay/notify/mchId
其它
微信支付请求客户端,分两个版本: TenpayClient
TenpayClientV3
默认情况下,直接注入ITenpayClient client
使用V3版本的微信支付 调用支付 client.UseMchId(mchId); 发送业务请求 client.SendAsync<TenpayBaseResponse>(TenpayBaseRequest quest,certSerialNo)
certSerialNo为本请求使用的证书序列号,不写时,使用p12证书序列号
使用v2版本的微信支付API,注入IEnumerable<ITenpayClient> tenpayClients
ITenpayClient tenpay = tenpayClients.FirstOrDefault(x => x.Ver == "2");
微信支付业务
开通条件
商家开通微信支付条件:
注册成为微信支付商家并完成登录 注册地址 https://pay.weixin.qq.com
打开产品中心-开发配置-JSAPI支付-添加支付目录授权
打开产品中心-Appid账号管理-关联AppId
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3
服务商分账
特约商户开通分账功能
服务商发起邀请 产品中心--特约商户授权产品--服务商分账 特约商户列表 选择商户,发起邀请