예제 #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
        private static AlipayTradeCreateRequest getTradeCreateRequest()
        {
            AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
            AlipayTradeCreateModel   model   = new AlipayTradeCreateModel();

            model.OutTradeNo  = "20150320010101001";
            model.TotalAmount = "88.88";
            model.Subject     = "Iphone6 16G";
            model.BuyerId     = "2088102177846880";
            request.SetBizModel(model);
            return(request);
        }
예제 #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_get_exception_when_call_cert_execute()
        {
            //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();

            //then
            AopException ex = Assert.Throws <AopException>(() => client.CertificateExecute(request));

            Assert.AreEqual(ex.Message.Contains("检测到证书相关参数未初始化,非证书模式下请改为调用Execute"), true);
        }
예제 #5
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");
        }
        private static AlipayTradeCreateRequest getTradeCreateRequest()
        {
            AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
            AlipayTradeCreateModel   model   = new AlipayTradeCreateModel();

            model.OutTradeNo  = "20200320010101006";
            model.TotalAmount = "88.88";
            model.Subject     = "Iphone6 16G";
            model.BuyerId     = "2088102177846880";
            ExtendParams extendParams = new ExtendParams();

            extendParams.HbFqNum           = "3";
            extendParams.HbFqSellerPercent = "100";
            model.ExtendParams             = extendParams;
            request.SetBizModel(model);
            return(request);
        }
예제 #7
0
        public void should_extract_correct_source_data_and_sign()
        {
            AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
            String responseBody = "{\"alipay_trade_create_response\":{\"code\":\"10000\",\"msg\":\"Success\","
                                  + "\"out_trade_no\":\"20150320010101001\",\"trade_no\":\"2019062322001446881000041395\"},"
                                  + "\"sign\":\"TS355N0QjK1r9GyD4YOsG5esszSUhESgwu1q5"
                                  + "+e1sWwqtPYe30CQ3v0QTEDdxYN9vm2No8V1KzuTSadrA4SZSkEkRchrcdVHCU8rCXOHWzS5wof8jg5S75y481kj3HqlpTaz"
                                  + "/EhvAXK8iC8Xz9CgPmvfLmAUNkxy0q05yV2wZAGNX0WElUOx1Lcd2FqeuRFMvBOq5TQ+SVqunfUMLic8rYsW"
                                  + "+smDHzIgjRcde8pHOZBMvmqDDzmyBLEgSbBswgHifQPDrhnGPlpk2U/nb8Sx7G8mWHEibtb8ClENcxtJEwcI0NN+erWO4Le"
                                  + "+jFVUOU0BqC4dxGBNX9AHCTZMEhfcZQ==\"}";

            SignItem signItem = JsonParser.GetSignItem(request, responseBody);

            Assert.AreEqual(signItem.SignSourceDate, "{\"code\":\"10000\",\"msg\":\"Success\",\"out_trade_no\":\"20150320010101001\","
                            + "\"trade_no\":\"2019062322001446881000041395\"}");
            Assert.AreEqual(signItem.Sign, "TS355N0QjK1r9GyD4YOsG5esszSUhESgwu1q5"
                            + "+e1sWwqtPYe30CQ3v0QTEDdxYN9vm2No8V1KzuTSadrA4SZSkEkRchrcdVHCU8rCXOHWzS5wof8jg5S75y481kj3HqlpTaz"
                            + "/EhvAXK8iC8Xz9CgPmvfLmAUNkxy0q05yV2wZAGNX0WElUOx1Lcd2FqeuRFMvBOq5TQ+SVqunfUMLic8rYsW"
                            + "+smDHzIgjRcde8pHOZBMvmqDDzmyBLEgSbBswgHifQPDrhnGPlpk2U/nb8Sx7G8mWHEibtb8ClENcxtJEwcI0NN+erWO4Le"
                            + "+jFVUOU0BqC4dxGBNX9AHCTZMEhfcZQ==");
        }
예제 #8
0
        public void should_get_exception_when_has_duplication_response_node()
        {
            AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
            String responseBody = "{\"alipay_trade_create_response\":{\"code\":\"10000\",\"msg\":\"Success\","
                                  + "\"out_trade_no\":\"20150320010101001\",\"trade_no\":\"2019062322001446881000041395\"},"
                                  + "\"alipay_trade_create_response\":{\"code\":\"10000\",\"msg\":\"Success\",\"out_trade_no\":\"forged\","
                                  + "\"trade_no\":\"forged\"},"
                                  + "\"sign\":\"TS355N0QjK1r9GyD4YOsG5esszSUhESgwu1q5"
                                  + "+e1sWwqtPYe30CQ3v0QTEDdxYN9vm2No8V1KzuTSadrA4SZSkEkRchrcdVHCU8rCXOHWzS5wof8jg5S75y481kj3HqlpTaz"
                                  + "/EhvAXK8iC8Xz9CgPmvfLmAUNkxy0q05yV2wZAGNX0WElUOx1Lcd2FqeuRFMvBOq5TQ+SVqunfUMLic8rYsW"
                                  + "+smDHzIgjRcde8pHOZBMvmqDDzmyBLEgSbBswgHifQPDrhnGPlpk2U/nb8Sx7G8mWHEibtb8ClENcxtJEwcI0NN+erWO4Le"
                                  + "+jFVUOU0BqC4dxGBNX9AHCTZMEhfcZQ==\"}";

            try
            {
                JsonParser.GetSignItem(request, responseBody);
            }
            catch (Exception ex)
            {
                Assert.AreEqual(ex.Message, "检测到响应报文中有重复的alipay_trade_create_response,验签失败。");
            }
        }
예제 #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);
        }