示例#1
0
        public static string MakeAliPayOrder(string companyId, AlipayTradeOrderModel model)
        {
            try
            {
                AliPayApiConfig config = AliPayApiConfigServices.QueryAliPayConfig(companyId);
                if (config == null)
                {
                    throw new MyException("获取支付宝配置失败");
                }

                string aliPayNotifyUrl           = string.Format("{0}/AliPayNotify", config.SystemDomain);
                AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
                request.BizContent = JsonHelper.GetJsonString(model);
                request.SetNotifyUrl(aliPayNotifyUrl);
                AlipayTradeCreateResponse response = GetDefaultAopClient(companyId).Execute(request);
                if (response.IsError)
                {
                    TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一下单失败1:{0}", response.Body));
                    return("");
                }
                return(response.TradeNo);
            }
            catch (Exception ex)
            {
                TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("统一下单失败2:{0}", ex.Message));
            }
            return("");
        }
示例#2
0
        public void should_be_able_to_send_token()
        {
            IAopClient client = new DefaultAopClient(TestAccount.Sandbox.Gateway, TestAccount.Sandbox.AppId,
                                                     TestAccount.Sandbox.AppPrivateKey, "json", "1.0", "RSA2", TestAccount.Sandbox.AlipayPublicKey, "utf-8", false);
            AlipayTradeCreateResponse response = client.Execute(getTradeCreateRequest(), "123", "456");

            Assert.AreEqual(response.SubMsg.Contains("无效的应用授权令牌"), true);
        }
示例#3
0
        public void should_return_success_response()
        {
            //given
            IAopClient client = new DefaultAopClient(TestAccount.Sandbox.Gateway, TestAccount.Sandbox.AppId,
                                                     TestAccount.Sandbox.AppPrivateKey, "json", "1.0", "RSA2", TestAccount.Sandbox.AlipayPublicKey, "utf-8", false);
            AlipayTradeCreateRequest request = getTradeCreateRequest();
            //when
            AlipayTradeCreateResponse response = client.Execute(request);

            //then
            Assert.AreEqual(response.Code, "10000");
        }
示例#4
0
        public void should_return_false_when_app_not_set_private_key()
        {
            //given
            //访问线上一个没有设置公私钥对的APP
            IAopClient client = new DefaultAopClient(TestAccount.ProdCert.Gateway, TestAccount.NotSetKeyAppId,
                                                     TestAccount.Sandbox.AppPrivateKey, "json", "1.0", "RSA2", TestAccount.Sandbox.AlipayPublicKey, "utf-8", false);
            //when
            AlipayTradeCreateResponse response = client.Execute(getTradeCreateRequest());

            //then
            Assert.AreEqual(response.IsError, true);
            Assert.AreEqual(response.SubMsg.Contains("应用未配置对应签名算法的公钥或者证书"), true);
        }
        public void TestCreate()
        {
            string outTradeNo = Guid.NewGuid().ToString();
            AlipayTradeCreateResponse response = Factory.Payment.Common().Create("iPhone6 16G",
                                                                                 outTradeNo, "88.88", "2088002656718920");

            Assert.AreEqual(response.Code, "10000");
            Assert.AreEqual(response.Msg, "Success");
            Assert.Null(response.SubCode);
            Assert.Null(response.SubMsg);
            Assert.NotNull(response.HttpBody);
            Assert.AreEqual(response.OutTradeNo, outTradeNo);
            Assert.True(response.TradeNo.StartsWith("202"));
        }
示例#6
0
        public void should_be_able_to_parse_xml_format_response()
        {
            //given
            IAopClient client = new DefaultAopClient(TestAccount.Sandbox.Gateway, TestAccount.Sandbox.AppId,
                                                     TestAccount.Sandbox.AppPrivateKey, "xml", "1.0", "RSA2", TestAccount.Sandbox.AlipayPublicKey,
                                                     "utf-8", false);
            AlipayTradeCreateRequest request = getTradeCreateRequest();
            //when
            AlipayTradeCreateResponse response = client.Execute(request);

            //then
            Assert.AreEqual(response.IsError, false);
            Assert.AreEqual(response.Code, "10000");
        }
示例#7
0
        public void TestCreateWithOptional()
        {
            string outTradeNo = Guid.NewGuid().ToString();
            AlipayTradeCreateResponse response = Factory.Payment.Common().Optional("goods_detail", GetGoodsDetail())
                                                 .Create("iPhone6 16G", outTradeNo, "0.01", "2088002656718920");

            Assert.IsTrue(ResponseChecker.Success(response));
            Assert.AreEqual(response.Code, "10000");
            Assert.AreEqual(response.Msg, "Success");
            Assert.Null(response.SubCode);
            Assert.Null(response.SubMsg);
            Assert.NotNull(response.HttpBody);
            Assert.AreEqual(response.OutTradeNo, outTradeNo);
            Assert.True(response.TradeNo.StartsWith("202"));
        }
        public void TestCrate()
        {
            string       outTradeNo = Guid.NewGuid().ToString();
            HuabeiConfig config     = new HuabeiConfig()
            {
                HbFqNum           = "3",
                HbFqSellerPercent = "0"
            };
            AlipayTradeCreateResponse response = Factory.Payment.Huabei().Create("Iphone6 16G",
                                                                                 outTradeNo, "88.88", "2088002656718920", config);

            Assert.AreEqual(response.Code, "10000");
            Assert.AreEqual(response.Msg, "Success");
            Assert.Null(response.SubCode);
            Assert.Null(response.SubMsg);
            Assert.NotNull(response.HttpBody);
            Assert.AreEqual(response.OutTradeNo, outTradeNo);
            Assert.True(response.TradeNo.StartsWith("202"));
        }
示例#9
0
        public void Create()
        {
            IAopClient client = GetClient();
            AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();

            request.BizContent = "{" +
                                 "    \"out_trade_no\":\"20150320010101001\"," +
                                 "    \"seller_id\":\"2088102172273210\"," +
                                 "    \"total_amount\":88.88," +
                                 "    \"discountable_amount\":8.88," +
                                 "    \"undiscountable_amount\":80.00," +
                                 "    \"buyer_logon_id\":\"15901825620\"," +
                                 "    \"subject\":\"Iphone6 16G\"," +
                                 "    \"body\":\"Iphone6 16G\"," +
                                 "    \"buyer_id\":\"2088102146225135\"," +
                                 "      \"goods_detail\":[{" +
                                 "                \"goods_id\":\"apple-01\"," +
                                 "        \"alipay_goods_id\":\"20010001\"," +
                                 "        \"goods_name\":\"ipad\"," +
                                 "        \"quantity\":1," +
                                 "        \"price\":2000," +
                                 "        \"goods_category\":\"34543238\"," +
                                 "        \"body\":\"特价手机\"," +
                                 "        \"show_url\":\"http://www.alipay.com/xxx.jpg\"" +
                                 "        }]," +
                                 "    \"operator_id\":\"Yx_001\"," +
                                 "    \"store_id\":\"NJ_001\"," +
                                 "    \"terminal_id\":\"NJ_T_001\"," +
                                 "    \"extend_params\":{" +
                                 "      \"sys_service_provider_id\":\"2088511833207846\"," +
                                 "      \"hb_fq_num\":\"3\"," +
                                 "      \"hb_fq_seller_percent\":\"100\"" +
                                 "    }," +
                                 "    \"timeout_express\":\"90m\"," +
                                 "    \"royalty_info\":{" +
                                 "      \"royalty_type\":\"ROYALTY\"," +
                                 "        \"royalty_detail_infos\":[{" +
                                 "                    \"serial_no\":1," +
                                 "          \"trans_in_type\":\"userId\"," +
                                 "          \"batch_no\":\"123\"," +
                                 "          \"out_relation_id\":\"20131124001\"," +
                                 "          \"trans_out_type\":\"userId\"," +
                                 "          \"trans_out\":\"2088101126765726\"," +
                                 "          \"trans_in\":\"2088101126708402\"," +
                                 "          \"amount\":0.1," +
                                 "          \"desc\":\"分账测试1\"," +
                                 "          \"amount_percentage\":\"100\"" +
                                 "          }]" +
                                 "    }," +
                                 "    \"alipay_store_id\":\"2016041400077000000003314986\"," +
                                 "    \"sub_merchant\":{" +
                                 "      \"merchant_id\":\"19023454\"" +
                                 "    }" +
                                 "  }";

            request.BizContent = JsonConvert.SerializeObject(new Entities.Create()
            {
                out_trade_no   = "20120320010101001",
                subject        = "Iphone 100",
                total_amount   = 8888.88,
                buyer_logon_id = "*****@*****.**",
            });


            AlipayTradeCreateResponse response = client.Execute(request);

            if (!response.IsError)
            {
                Console.WriteLine("调用成功");
            }
            else
            {
                Console.WriteLine("调用失败");
            }

            Assert.IsFalse(response.IsError);
        }