//alipay.trade.precreate(统一收单线下交易预创建) public bool Alipay_PreCreate(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, string ord_name, decimal total_amt , string partner_id, out string barcode, out string msg) { try { IAlipayTradeService sc = F2FBiz.CreateClientInstance(Config.serverUrl, app_id, merchant_private_key, Config.version, Config.sign_type, alipay_public_key, Config.charset); AlipayTradePrecreateContentBuilder builder = BuildPrecreateContent(ord_id, ord_name, total_amt, partner_id); string out_trade_no = builder.out_trade_no; //如果需要接收扫码支付异步通知,那么请把下面两行注释代替本行。 //推荐使用轮询撤销机制,不推荐使用异步通知,避免单边账问题发生。 //AlipayF2FPrecreateResult precreateResult = serviceClient.tradePrecreate(builder); string notify_url = Server.Appsetting.ali_notify_url; //商户接收异步通知的地址 AlipayF2FPrecreateResult precreateResult = sc.tradePrecreate(builder, notify_url); //以下返回结果的处理供参考。 //payResponse.QrCode即二维码对于的链接 //将链接用二维码工具生成二维码打印出来,顾客可以用支付宝钱包扫码支付。 msg = ""; barcode = ""; if (precreateResult.Status == ResultEnum.SUCCESS) { barcode = precreateResult.response.QrCode; return(true); } else if (precreateResult.Status == ResultEnum.FAILED) { msg = precreateResult.response.Body; return(false); } else { if (precreateResult.response == null) { msg = "配置或网络异常,请检查后重试"; } else { msg = "系统异常,请更新外部订单后重新发起请求"; } return(false); } } catch (Exception ex) { Server.LogHelper.writeLog("PreCreate ->Alipay_PreCreate()", ex.ToString(), ord_id, total_amt.ToString()); throw ex; } }
//alipay.trade.pay(统一收单线下交易条码支付) public bool Alipay_BarcodePay(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, string ord_name, decimal total_amt , string auth_code, string partner_id, out string msg) { try { IAlipayTradeService sc = F2FBiz.CreateClientInstance(Config.serverUrl, app_id, merchant_private_key, Config.version, Config.sign_type, alipay_public_key, Config.charset); AlipayTradePayContentBuilder builder = BuildPayContent(ord_id, ord_name, auth_code, total_amt, partner_id); string out_trade_no = builder.out_trade_no; AlipayF2FPayResult payResult = sc.tradePay(builder); msg = ""; if (payResult.Status == ResultEnum.SUCCESS) { return(true); } else if (payResult.Status == ResultEnum.FAILED) { msg = payResult.response.Body; return(false); } else { if (payResult.response == null) { msg = "配置或网络异常,请检查后重试"; } else { msg = "网络异常,请检查网络配置后重试"; } return(false); } } catch (Exception ex) { Server.LogHelper.writeLog("PreCreate ->Alipay_BarcodePay()", ex.ToString(), ord_id, total_amt.ToString()); throw ex; } }
//alipay.trade.query(统一收单线下交易查询) public bool Alipay_Query(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, out string msg) { try { IAlipayTradeService sc = F2FBiz.CreateClientInstance(Config.serverUrl, app_id, merchant_private_key, Config.version, Config.sign_type, alipay_public_key, Config.charset); //商户订单号 string out_trade_no = ord_id; //商户网站订单系统中唯一订单号,必填 AlipayF2FQueryResult queryResult = sc.tradeQuery(out_trade_no); msg = ""; if (queryResult.Status == ResultEnum.SUCCESS) { return(true); } else if (queryResult.Status == ResultEnum.FAILED) { msg = queryResult.response.Body; return(false); } else { if (queryResult.response == null) { msg = "配置或网络异常,请检查后重试"; } else { msg = "系统异常,请重试"; } return(false); } } catch (Exception ex) { Server.LogHelper.writeLog("PreCreate ->Alipay_Query()", ex.ToString(), ord_id); throw ex; } }
//alipay.trade.refund(统一收单线下交易退款) public bool Alipay_Refund(string app_id, string merchant_private_key, string alipay_public_key, string ord_id, string req_id, decimal refund_amt, out string msg) { try { IAlipayTradeService sc = F2FBiz.CreateClientInstance(Config.serverUrl, app_id, merchant_private_key, Config.version, Config.sign_type, alipay_public_key, Config.charset); AlipayTradeRefundContentBuilder builder = BuildContent(ord_id, req_id, refund_amt); AlipayF2FRefundResult refundResult = sc.tradeRefund(builder); msg = ""; if (refundResult.Status == ResultEnum.SUCCESS) { return(true); } else if (refundResult.Status == ResultEnum.FAILED) { msg = refundResult.response.Body; return(false); } else { if (refundResult.response == null) { msg = "配置或网络异常,请检查后重试"; } else { msg = "系统异常,请走人工退款流程"; } return(false); } } catch (Exception ex) { Server.LogHelper.writeLog("PreCreate ->Alipay_Query()", ex.ToString(), ord_id); throw ex; } }