public static string preparePayParameters(BCBill bill)
{
long timestamp = BCUtil.GetTimeStamp(DateTime.Now);
JsonData data = new JsonData();
data["app_id"] = BCCache.Instance.appId;
if (!BCCache.Instance.testMode)
{
data["app_sign"] = BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString());
}
else
{
data["app_sign"] = BCPrivateUtil.getAppSignatureByTestSecret(timestamp.ToString());
}
data["timestamp"] = timestamp;
data["channel"] = bill.channel;
data["total_fee"] = bill.totalFee;
data["bill_no"] = bill.billNo;
data["title"] = bill.title;
data["return_url"] = bill.returnUrl;
data["bill_timeout"] = bill.billTimeout;
data["openid"] = bill.openId;
data["show_url"] = bill.showURL;
data["qr_pay_mode"] = bill.qrPayMode;
data["identity_id"] = bill.yeeID;
if (bill.useApp.HasValue)
{
data["use_app"] = bill.useApp.Value;
}
if (bill.bank != null)
{
data["bank"] = bill.bank;
}
if (bill.cardNo != null)
{
data["card_no"] = bill.cardNo;
}
if (bill.notifyURL != null)
{
data["notify_url"] = bill.notifyURL;
}
if (bill.optional != null && bill.optional.Count > 0)
{
data["optional"] = new JsonData();
foreach (string key in bill.optional.Keys)
{
data["optional"][key] = bill.optional[key];
}
}
string paraString = data.ToJson();
return paraString;
}