Senparc實現微信支付接口


程序框架 .net framework 4.6.1

首先使用nuget安裝Senparc

 

新建一個模型類 Parameters 用於構造提交參數

  public class Parameters
    {
        public string appid { get { return "wx0fece4df122d02e6"; } }
        public string attach { get { return "支付測試"; } }
        public string mchid { get { return "1585830261"; } }
        public string nonce { get { return Senparc.Weixin.MP.Helpers.JSSDKHelper.GetNoncestr(); } }
        public string notify_url { get { return "http://localhost:3233/Pay/Notify"; } }
        public string body { get { return "JSAPI支付測試"; } }
        public string out_trade_no { get; set; }
        public string spbill_create_ip { get { return "127.0.0.1"; } }
        public string total_fee { get { return "1"; } }
        public string trade_type { get { return "JSAPI"; } }
        public string key { get { return "206b25c6dc604c12af8ed96de6409893"; } }
        public string secret { get { return "fc8a5c807cf7f83174990351ca1ce8a5"; } }
    }

 

方法:

 public ActionResult Pay()
        {
            var paramter = new Parameters();
            paramter.out_trade_no = "test0123asdf";//支付訂單號 自己系統單號
            var timeStamp = TenPayV3Util.GetTimestamp();//時間戳
            var nonceStr = TenPayV3Util.GetNoncestr();//隨機字符串
            var openid = "oNWbk5DD6xw2A6DcwyGYMRRDZ4uE";//用戶openid
            //構造提交數據
            TenPayV3UnifiedorderRequestData tenPayV3 = new TenPayV3UnifiedorderRequestData(paramter.appid, paramter.mchid, paramter.body, paramter.out_trade_no, 1, paramter.spbill_create_ip, paramter.notify_url, Senparc.Weixin.TenPay.TenPayV3Type.JSAPI, openid, paramter.key, nonceStr);
            //提交支付接口
            UnifiedorderResult result = TenPayV3.Unifiedorder(tenPayV3);
            PayRequesEntity payEntity = new PayRequesEntity();
            payEntity.timeStamp = timeStamp;
            payEntity.nonceStr = nonceStr;
            payEntity.package = "prepay_id=" + result.prepay_id;
            payEntity.signType = "MD5";
            payEntity.paySign = TenPayV3.GetJsPaySign(paramter.appid, timeStamp, nonceStr, payEntity.package, paramter.key);
            return Json(payEntity, JsonRequestBehavior.AllowGet);
        }

執行成功后 result會獲取到 返回數據給前台

 

 

 

 

 前台獲取簽名后執行支付方法

payRequestPromise(data) {
                let _self = this;
                wx.requestPayment({
                    timeStamp: data.data.timeStamp,
                    nonceStr: data.data.nonceStr,
                    package: data.data.package,
                    paySign: data.data.paySign,
                    signType: 'MD5',
                    success(pay) {
                        _self.payOrderNotifyHandler(data);
                    },
                    fail(res) {
                        uni.redirectTo({
                            url: './orderFail?orderCode='+data.orderCode
                        })
                    },
                    complete(res) {
                    }
                })
            },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM