最近公司研发了几个电商小程序,还有一个核心的电商直播,只要是电商一般都会涉及到交易信息,离不开支付系统,这里我们统一实现小程序的支付流程(与服务号实现步骤一样)。


目录
1、开通小程序的支付能力
2、商户后台绑定同一主体的APPID并授权
3、预先设置回调地址,商户后台设置开发的配置
4、代码实现统一支付5、微信支付回调
6、总结
 

开通小程序的支付能力

开通小程序支付功能比较简单,基本上按微信文档一步一步的申请就好,如图

 

以上三个步骤就申请完成

1、提交资料给微信

2、微信审核并签署协议

3、商户后台绑定同主体的APPID

 

商户后台绑定同一主体的APPID并授权

1、登录商户后台https://pay.weixin.qq.com,进入产品中心—APPID授权管理,进入授权页面如图:

 

2、填写相关已认证APPID信息,阅读并签署《微信支付商户号与APPID授权协议》,点击“确认”提交,发起授权申请,如下图:

 

3、发起授权申请后,商户需自行前往对应平台确认授权申请。

小程序:前往公众平台,点击“微信支付-商户号管理”,查看相关商户号信息,确认授权申请,或在“公众平台安全助手”下发的模板消息中确认授权信息;

公众号/订阅号:前往公众平台,点击“微信支付-商户号管理”,查看相关商户号信息,确认授权申请;

APP:前往开放平台,点击“管理中心-查看-微信支付-商户号管理”,查看相关商户号信息,确认授权申请;

 

4. 以上步骤绑定成功,可以实现微信支付功能。

 

预先设置回调地址,商户后台设置开发的配置

预先设置好回调地址后,方便支付成功后收到微信通知来处理业务,设置也比较简单不用多说,如图:

 

根据自己的需求设置不同的回调地址。

 

代码实现统一支付

1、统一支付,只要是微信公众号平台的同一主体都可以使用同一个支付,只需要在商户后台绑定APPID即可。

微信小程序支付官方图:

 

微信支付文档说明地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

 

引用包:

Senparc.Weixin.WxOpen

Senparc.Weixin.TenPay

 

注册公众号,小程序信息

services.AddSenparcGlobalServices(Configuration) .AddSenparcWeixinServices(Configuration);

 

前端调用统一下单接口,获取prepayId

复制代码
IRegisterService register = RegisterService.Start(env, senparcSetting.Value).UseSenparcGlobal(false, null); register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value)   .RegisterTenpayV3(senparcWeixinSetting.Value, "appid");
复制代码

 

部分前端代码如下:

 

 

 

后端部分代码截图获取prepayId,如需代码请与我联系

 

提交统一支付成功后,会出现如下图:

 

注:一般正常获取到prepayid就可以发起支付,请确保所给的参数正确。

 

微信支付回调

微信支付回调规则如下:

 

回调代码实现

复制代码
///<summary>/// 微信支付回调地址 /// </summary>/// <returns></returns>[HttpPost("PayNotifyUrl")] public ActionResult PayNotifyUrl() {     ResponseResult result = new ResponseResult();     ResponseHandler resHandler = new ResponseHandler(HttpContext);     string return_code = resHandler.GetParameter("return_code");     string return_msg = resHandler.GetParameter(