最近,公司开发了几个小型电商节目和一个核心电商直播。只要电子商务普遍涉及交易信息,支付系统就不可或缺。在这里,我们统一实现了小程序的支付流程(步骤与服务号相同)。
以上三个步骤已经完成
1.将信息提交到微信
2.微信审核并签署协议
3.商家在后台绑定同一主体的APPID
2.填写相关认证APPID信息,阅读并签署《微信支付商户号与APPID授权协议》,点击“确认”提交,发起授权申请,如下图:所示
3.授权申请发起后,商家需要到相应的平台确认授权申请。
小程序:前往公共平台,点击“微信支付-商户号管理”,查看相关商户号信息,确认授权申请,或确认“公共平台安全助手”发布的模板消息中的授权信息;
微信官方账号/订单号:前往公共平台,点击“微信支付-商户号管理”,查看相关商户号信息,确认授权申请;
APP:前往开放平台,点击“管理中心-查看-微信支付-商户号管理”,查看相关商户号信息,确认授权申请;
4.以上步骤绑定成功,即可实现微信支付功能。
根据自己的要求设置不同的回拨地址。
微信小程序支付官方地图:
微信支付单据描述地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?章=9_1
参考包:
森帕克。Weixin.WxOpen
森帕克。微信.财付通
服务。添加服务(配置)。添加服务(配置);前端调用统一订购接口获取预付费标识
IRegisterService register=register service。Start(env,senparcSetting。值)。UseSenparcGlobal(false,null);注册。使用senparcweixin(senparcweixin setting。值,senparcSetting。value .)registerstenpayv3(senparcWeixinseting。Value,' appid ');
部分前端代码如下:
从代码后端部分的截图中获取预付费Id,如果需要代码,请联系我
提交统一支付成功后,会出现下图:
注意:一般情况下,可以在正常获得预付款后开始付款。请确保给出的参数是正确的。
微信支付回拨
微信支付回拨规则如下:
回调代码实现
///摘要///微信支付回调地址////summary///returns/returns[Http set(' paynotifyURl ')]public action result paynotifyURl(){ response result=new response result();ResponseHandler resHandler=new ResponseHandler(HttpContext);字符串return_code=resHandler .GetParameter(' return _ code ');字符串return_msg=resHandler .GetParameter(' return _ msg ');尝试{ var mch_key=Senparc .微信。配置。senparcweixinseting。tenpayv3 _ Key重装机.setKeY(mch _ key);var notifyXml=resHandler .ParseXML();bool signFlag=resHandler .IsTenpaySign();如果(签名标志返回_代码.ToOpper()==' SUCCESS '){ 0字符串附加=resHandler .getParameter(' attach ');string device_info=resHandler .GetParameter(' device _ info ');string out_trade_no=resHandler .GetParameter(' out _ trade _ no ');字符串事务id=Reshandler .getParameter(' transaction _ id ');字符串total_fee=resHandler .GetParameter(' total _ fee ');payordernityparam参数=new payordernityparam(){ PayNo=out _ trade _ no,Attach=attach,PayPrice=decimal .Parse(total_fee)/100,TransactionNo=transaction_id,};//回调参数说明:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?章节=9_7index=3 //Logger .信息(字符串。格式('支付回调接收参数成功,notifyXml={0},参数={1},notifyXml,参数. SerializeObject()));结果=服务PayNotifyUrl(参数);if (result.errno!=0) { //回调处理逻辑失败伐木工。错误(字符串。格式('支付回调处理失败:支付单号:{0},{1},参数支付号,结果。errmsg));} else { Logger .信息(字符串。格式('支付回调处理成功,支付单号:{0} ',参数PayNo));字符串xml=字符串。格式(@ XML return _ code![CData[{ 0 }]/return _ code return _ msg![CData[{ 1 }]/return _ msg/XML ',return_code,return _ msg);返回内容(xml,‘text/XML’);} } else { //错误的订单处理伐木工。错误(字符串。格式('支付回调接失败,signFlag={0},notifyXml={1} ',signFlag,notifyXml));} } catch (Exception ex) { Logger .错误(字符串。格式('支付回调异常:消息={0},堆栈跟踪={1},例如。留言,前任堆栈跟踪));}返回内容("失败"、"文本/XML ");}回调接口最好验证下签名是否正确,验证签名请先设置下商户关键,如签名成功,微信支付成功,这时可以处理业务数据。
注:如果业务处理成功最好返回成功成就告诉微信,否则微信会隔一段时间就会回调一次,直到回调次数用尽,这里也需要自己业务处理好状态。
总结
以上流程就是微信支付过程,以上步骤由于一些隐私问题部分代码采用了截图,如有不明白之处请与我联系,我们一起交流学习,下一篇文章我们将实现微信退款功能。
以上所述是小编给大家介绍的。净核心实现微信小程序支付功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!