支付宝demo里面的out_trade_no使用的是纯数字的编号,如果有字母和上面的body对比,会发现demo少了两个斜杠("\")
string OrderNumber = "QMalipay" + DateTime.Now.ToString("yyyyMMddHHmmss");
string app_id = "2017080208003896";
//应用私钥
string merchant_private_key ="通过支付宝文档看如何设置";
//支付宝公钥
string alipay_public_key = "通过支付宝文档看如何设置";
string timeout_express = "30m";//订单有效时间(分钟)
string postUrl = "https://openapi.alipay.com/gateway.do";
string sign_type = "RSA2";//加签方式 有两种RSA和RSA2 我这里使用的RSA2(支付宝推荐的)
string version = "1.0";//固定值 不用改
string format = "JSON";//固定值
string Amount = "0.01";//订单金额
string method = "QUICK_WAP_WAY";//调用接口 固定值 不用改
IAopClient client = new DefaultAopClient(postUrl, app_id, merchant_private_key, format, version, sign_type, alipay_public_key, "UTF-8", false);
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
request.SetNotifyUrl("看支付文档参数");
request.SetReturnUrl("看支付文档参数");
// request.timestamp();
request.BizContent = "{" +
"\"body\":\"XXXXX兼职服务包购买\"," +
"\"subject\":\"XXXXX服务包\"," +
"\"out_trade_no\":\"" + OrderNumber + "\"," +//这里支付宝demo使用的是纯数字的编号,如果有字母和上面的body对比,会发现demo少了两个斜杠("\")
"\"timeout_express\":\"" + timeout_express + "\"," +
"\"total_amount\":" + Amount + "," +
"\"product_code\":\"" + method + "\"" +
"}";
AlipayTradeWapPayResponse res = client.pageExecute(request);
// string form = response.Body.Substring(0, response.Body.IndexOf("<script>"));
string form = res.Body;//把支付sdk的里面client.pageExecute 函数中的"Post” 改为 GET,返回来的为url,解决了返回为form,然后在调转支付的问题
var response = base.Response;
response.Redirect(form, false);