public string GetProductKeyFromTime(PayServiceKinds kind, int time) { switch (kind) { case PayServiceKinds.InstitudeOfGrowth: return(PRODUCT_GROWTH_APPLY); case PayServiceKinds.FootChat: { switch (time) { case 6: return(PRODUCT_FOOTCHAT_SERVICE_6MONTH); case 12: return(PRODUCT_FOOTCHAT_SERVICE_12MONTH); default: throw new ExceptionWithErrorCode(ErrorCode.没有找到对应条目, "未定义的类型"); } } default: throw new ExceptionWithErrorCode(ErrorCode.没有找到对应条目, "未定义的类型"); } }
public string GetWebPayUrl(string access_token, long uid, int type, int time, PayServiceKinds kind, int quantity, bool isH5, bool isWeixinClient, PayFromKinds from, string scene_info) { ExceptionHelper.ThrowIfNotId(uid, "uid"); ExceptionHelper.ThrowIfTrue(quantity < 1, "quantity", "quantity < 1"); var productKey = GetProductKeyFromTime(kind, time); var queries = new List <string>(); queries.Add("product=" + productKey); queries.Add("quantity=" + quantity.ToString()); queries.Add("type=" + type.ToString()); queries.Add("uid=" + uid.ToString()); queries.Add("access_token=" + access_token); queries.Add("from_kind=" + from.To <byte>().ToString()); if (isH5) { queries.Add("h5=1"); } if (isWeixinClient) { queries.Add("payment=jsapi"); } if (!String.IsNullOrWhiteSpace(scene_info)) { queries.Add("extension=" + System.Web.HttpUtility.UrlEncode(JsonConvert.SerializeObject(new { scene_info = scene_info }), Encoding.UTF8)); } var url = "http://api.pay.tgnet.com/order/create?" + String.Join("&", queries); if (type == 1 && isWeixinClient) { url = "http://api.weixin.tgnet.com/token/getopenid?appid=wxc72923937e510ab4&redirect_uri=" + System.Web.HttpUtility.UrlEncode(url); } return(url); }