var WXPay = require('wx-pay');

var wxpay = WXPay({
	appid: 'wx6f3ebe44defe336a',
	mch_id: '1232813602',
	partner_key: 'sinotone2014sinotone2014sinotone', //微信商户平台API密钥
	//pfx: fs.readFileSync('./wxpay_cert.p12'), //微信商户平台证书
  //pfx: "sinotone2014sinotone2014sinotone"
});
// var out_trade_no='20160203'+Math.random().toString().substr(2, 10);
// wxpay.createUnifiedOrder({
// 	body: '充值兑换宝币',
// 	out_trade_no: out_trade_no,
// 	total_fee: 1,
// 	spbill_create_ip: '192.168.2.210',
// 	notify_url: 'http://www.gongsibao.com',
// 	trade_type: 'NATIVE',
// 	product_id: '1234567890'
// }, function(err, result){
// 	console.log(result);
// 	//查询订单
// 	//通过微信订单号查
// 	wxpay.queryOrder({ out_trade_no:out_trade_no}, function(err, order){
// 		console.log(order);
// 	});
//
// });

async function queryWxOrder(idkey){
	var p=new Promise((resv,rej)=>{
		 wxpay.queryOrder({ out_trade_no:idkey}, function(err, order){
			if(err){
				return rej(err);
			}else{
				return resv(order);
			}
		});
	});
	return p;
}

async function testQuery(){
	try{
		var result = await queryWxOrder("d942bc2ccd784034af60c2d92079c897");
		console.log(result);
	}catch(e){
		console.log(e);
		console.log("error.................");
	}

}
testQuery();








// 二、框架
// 三、实战





// async function getCacheByKey(k){
//   return k;
// }
// async function buildData(data){
//   console.log(data);
//   console.log("xxxxxxxxxxxxxxxx");
//   console.log(data.length);
//   var ds=[]
//   for(var i=0;i<data.length;i++){
//     console.log(i);
//     var source={name:""};
//     var count=await getCacheByKey(data[i].name);
//     source.name=data[i].name;
//     source.value=count;
//     ds.push(source);
//   }
//   return  ds;
// }
// async function out(){
//   var data=[
//     {"name":"jy"},
//     {"name":"tom"}
//   ];
//   var ds=await buildData(data);
//   console.log(ds);
// }
//
// out();

// async function ok1(){
//   var p=new Promise(function(res,rej){
//     setTimeout(()=>{
//       return res("ok1");
//     },2000);
//   });
//   return p;
// }
// async function ok2(){
//   return "ok2";
// }
// async function ok3(){
//   var k1=await ok1();
//   console.log(k1);
//   var k2=await ok2();
//   console.log(k2);
// }
// ok3();
// const uuidv4 = require('uuid/v4');
// var u=uuidv4()
// console.log(u.replace(/\-/g,""))
// async function testAsync1(){
//   return 5;
// }
//
// async function testAsync2(){
//   return 5;
// }
// async function testAsync3(){
//   var x=  await testAsync1();
//   var y=  await testAsync2();
//   return 5;
// }

// var x=testAsync().then(function(r){
//   console.log(r);
//   return 6;
// }).then(function(r){
//   console.log(r);
//   return 7;
// });
// x.then(function(r){
//   console.log(r);
// }).catch(function(err){
//
// });
// function getArgs(func){
// 		//匹配函数括号里的参数
// 		var args=func.toString().match(/[async|function]\s.*?\(([^)]*)\)/)[1];
// 		//分解参数成数组
// 		return args.split(",").map(function (arg){
// 			//去空格和内联注释
// 			return arg.replace(/\/\*.*\*\//,"").trim();
// 		}).filter(function(args) {
// 			//确保没有undefineds
// 			return args;
// 		});
// }
// console.log(convertoss["testMethod"].toString());
// var inObj={a:"hello",b:"ok"}
// var p=convertoss["testMethod"].apply(convertoss,["hello","kkkk"]);
// var args=getArgs(convertoss["testMethod"])
// console.log(args);
//var p=convertoss["testMethod"].call(convertoss,["hello"]);
//var p=Reflect.apply(,convertoss,"hello");
// p.then(function(r){
// 	console.log(r);
// });
// convertoss.convert2pdf(key).then(function(result){
// 	console.log(result);
// }).catch(function(e){
// 	console.log(e);
// });


// var routes=[
//     {
//       path:'/',components:{
//          default:componentFactory("products"),
//         // shows:demo
//       }
//     },
//     {
//       path:'/products/:id/detail',components:{
//          default:componentFactory("detail"),
//          //shows:demo
//       }
//     },
//     {
//       path:'/platform/apps',components:{
//          default:componentFactory("apps"),
//          //shows:demo
//       }
//     },
//     {
//       path:'/platform/users',components:{
//          default:componentFactory("users"),
//          //shows:demo
//       }
//     },
//     {
//       path:'/platform/op/oplogs',components:{
//          default:componentFactory("oplogs"),
//          //shows:demo
//       }
//     },
// ]
