准备工作
开发者信息
- appkey
- appsecret
- sellerid
- 商户私钥prvKey
- 平台公钥pubKey
密钥说明
- 密钥分为测试环境和正式环境两套,放在online和test两个目录下,两者不可混用,请注意区分
- xxx_rsa_private_key.p8.java/py 包含了商户私钥信息的证书文件,为p8格式,适合java、python、.net使用;
- xxx_rsa_private_key.pem.php 包含了商户私钥信息的证书文件,为pem格式,适合php使用;
- touchlife_rsa_public_key.pem.java/py 平台公钥,用于验签,适合java、python、.net使用;
- touchlife_rsa_public_key.pem.php 平台公钥,用于验签,适合php使用;
引入开发包
注意:请用源码引入方式进行引用
import com.cootek.touchlife.ApiException; import com.cootek.touchlife.DefaultTouchlifeClient; import com.cootek.touchlife.TouchlifeClient; import com.cootek.touchlife.TouchlifeResponse; import com.cootek.touchlife.util.SecurityUtils; import com.cootek.touchlife.request.AccountUserProfileRequest; ......//request下的各接口,看需求引入 import com.cootek.touchlife.response.AccountUserProfileResponse; ......//response下的各接口,看需求引入
using Touchlife.Api;
from touchlife import appinfo, setDefaultAppInfo from touchlife.api.UserProfileRequest import UserProfileRequest ......//api下的各接口,看需求引入
include "TouchlifeSdk.php";
配置开发者信息
protected static String url = "http://open.cootekservice.com"; //请求触宝的后台网址 protected static String appkey = "7168795595590513"; //商户的appkey protected static String appsecret = "b4aa1d1819d34ab597c1b6bac9a404c4"; //商户appkey对应的appsecret protected static String sellerId = "9223229708085022"; //商户的sellerId protected static String prvKey = "MIICdgIBADANBgkqhkiG..."; //商户私钥,字符串过长省略后部 protected static String pubKey = "MIGfMA0GCSqGSIb3DQEB..."; //触宝平台公钥,字符串过长省略后部 TouchlifeClient client = new DefaultTouchlifeClient(url, appkey, appsecret, sellerId, prvKey, pubKey); //初始化client
static string serverUrl = "http://open.cootekservice.com"; //请求触宝的后台网址 static string appKey = "7168795595590513"; //商户的appkey static string appSecret = "b4aa1d1819d34ab597c1b6bac9a404c4"; //商户appkey对应的appsecret static string sellerID = "9223229708085022"; //商户的sellerId static string prvKey = "MIICdwIBADANBgkq..."; //商户私钥,字符串过长省略后部 static string pubKey = "MIGfMA0GCSqGSIb3..."; //触宝平台公钥,字符串过长省略后部 DefaultTouchlifeClient client = new DefaultTouchlifeClient(serverUrl, appKey, appSecret, sellerID, prvKey, pubKey); //初始化client
$client = new TouchlifeClient; //初始化client $client->connectUrl = "http://open.cootekservice.com"; //请求触宝的后台网址 $client->appkey = "7168795595590513"; //商户的appkey $client->appsecret = "b4aa1d1819d34ab597c1b6bac9a404c4"; //商户appkey对应的appsecret $client->sellerId = "9223229708085022"; //商户的sellerId $client->prvKeyPath = "./demo_rsa_private_key.pem"; //商户私钥,字符串过长省略后部 $client->pubKeyPath = "./touchlife_rsa_public_key.pem"; //触宝平台公钥,字符串过长省略后部
HOST = "open.cootekservice.com" //请求触宝的后台网址 PORT = "80" //请求触宝后台地址端口号 appkey = "7168795595590513" //商户的appkey appsecret = "b4aa1d1819d34ab597c1b6bac9a404c4" //商户appkey对应的appsecret sellerId = "9223229708085022" //商户的sellerId pubKey = """MIGfMA0GCSqGSI...""" //商户私钥,字符串过长省略后部 privKey = """MIICdwIBADANBgkq...""" //触宝平台公钥,字符串过长省略后部 setDefaultAppInfo(appkey, appsecret, privKey, pubKey, sellerId) //初始化client
通用步骤
- 先设置好开发者信息
- 实例化请求或者返回的类
- 设置参数
- 调用HTTP请求方法,得到返回结果
- 读取返回结果
具体的可参见下一个获取用户信息例子,各个请求和返回结果字段的说明,请参见API文档
获取用户信息
用户信息的获取,需要依靠前端JS通过js-sdk获取accessToken,作为参数请求服务商实现的接口,然后服务商后台拿着accessToken向触宝服务器请求,示例代码如下:
TouchlifeClient client = new DefaultTouchlifeClient(url, appkey, appsecret, sellerId, prvKey, pubKey); AccountUserProfileRequest req = new AccountUserProfileRequest(); req.setAccessToken("eyJ0b2tlbiI6ICI5Mzg3OGNhOC1jYzhjLTQ2NjYtOTRjYS0zOGRiZjJjMWMzMjUifQ=="); AccountUserProfileResponse response; response = client.execute(req); System.out.println("userId:" + response.getUserId()); System.out.println("phone:" + response.getPhone());
DefaultTouchlifeClient client = new DefaultTouchlifeClient(serverUrl, appKey, appSecret, sellerID, prvKey, pubKey); string accessToken = "eyJ0b2tlbiI6ICJjYTAzOTgyNC05MjU4LTQxMTItYTBhMC0xNThkYTBlNzg5YTUifQ=="; var request = new AccountUserProfileRequest(accessToken); var resp = client.Execute<AccountUserProfileResponse>(request); Console.WriteLine("body:" + resp.Body); Console.WriteLine("userId:" + resp.UserId); Console.WriteLine("phone:" + resp.phone);
user_profile = UserProfileRequest(HOST, PORT) user_profile.accessToken = 'eyJ0b2tlbiI6ICJjYTAzOTgyNC05MjU4LTQxMTItYTBhMC0xNThkYTBlNzg5YTUifQ==' res = user_profile.getResponse() print res.get('userId') print res.get('phone')
$req = new AccountUserProfileRequest; $req->setAccessToken("eyJ0b2tlbiI6ICJjYTAzOTgyNC05MjU4LTQxMTItYTBhMC0xNThkYTBlNzg5YTUifQ=="); $resp = $client->execute($req); echo "<br>" . "userId:" . $resp["userId"]; echo "<br>" . "phone:" . $resp["phone"];
支付
请求
TouchlifeClient client = new DefaultTouchlifeClient(url, appkey, appsecret, sellerId, prvKey, pubKey); TradePayCreateRequest req = new TradePayCreateRequest(); req.setAccessToken("eyJ0b2tlbiI6ImZhNzI3N2EwLTkzZDctNGNiNS04M2UwLWU5MGQxOWUyN2Y4NCIsImV0b2tlbiI6IiJ9") req.setUserId("7963331065175620093"); req.setNotifyUrl("http://server.com/pay/callbak"); req.setTradeNo("238974128394"); req.setTradeService("com.company.product"); req.setTradeName("触宝-话费充值"); req.setTradeDesc("触宝-话费充值-100元"); req.setTotalFee(9980); req.setExpireTime(new Date(System.currentTimeMillis())); req.setAttach("238974128394"); req.setTradeStr("eyJwYXltZW50VHlwZSI6ICJ3ZWlwYXkifQ=="); TradePayCreateResponse response; response = client.execute(req); System.out.println("transactionId:" + response.getTransactionId()); System.out.println("tradeStatus:" + response.getTradeStatus()); System.out.println("payStr:" + response.getPayStr());
accessToken = "eyJ0b2tlbiI6ImZhNzI3N2EwLTkzZDctNGNiNS04M2UwLWU5MGQxOWUyN2Y4NCIsImV0b2tlbiI6IiJ9" var request = new TradePayCreateRequest(accessToken); request.UserId = "7963331065175620093"; request.NotifyUrl = "http://server.com/pay/callbak"; request.TradeNo = "238974128394"; request.TradeService = "com.company.product"; request.TradeName = "触宝-话费充值"; request.TradeDesc = "触宝-话费充值-100元"; request.TotalFee = 9980; request.ExpireTime = DateTime.Now; request.Attach = "238974128394"; request.TradeStr = "eyJwYXltZW50VHlwZSI6ICJ3ZWlwYXkifQ=="; var resp = client.Execute<TradePayCreateResponse>(request); Console.WriteLine("body:" + resp.Body); Console.WriteLine("TransactionId:" + resp.TransactionId); Console.WriteLine("TradeStatus:" + resp.TradeStatus); Console.WriteLine("PayStr:" + resp.Paystr);
pay_create = OrderCreateRequest(HOST, PORT) pay_create.accessToken = "eyJ0b2tlbiI6ImZhNzI3N2EwLTkzZDctNGNiNS04M2UwLWU5MGQxOWUyN2Y4NCIsImV0b2tlbiI6IiJ9" pay_create.userId = "7963331065175620093" pay_create.notifyUrl = "http://server.com/pay/callbak" pay_create.tradeNo = "238974128394" pay_create.tradeService = "com.company.product" pay_create.tradeName = "触宝-话费充值" pay_create.tradeDesc = "触宝-话费充值-100元" pay_create.totalFee = "9980" pay_create.expireTime = "201512310000"; pay_create.attach = "238974128394" pay_create.tradeStr = "eyJwYXltZW50VHlwZSI6ICJ3ZWlwYXkifQ==" res = pay_create.getResponse() print 'transactionId:' + res.get('transactionId') print 'tradeStatus:' + res.get('tradeStatus') print 'payStr:' + res.get('payStr')
$req = new TradePayCreateRequest; $req->setAccessToken("eyJ0b2tlbiI6ImZhNzI3N2EwLTkzZDctNGNiNS04M2UwLWU5MGQxOWUyN2Y4NCIsImV0b2tlbiI6IiJ9"); $req->setUserId("7963331065175620093"); $req->setNotifyUrl("http://server.com/pay/callbak"); $req->setTradeNo("238974128394"); $req->setTradeService("com.company.product"); $req->setTradeName("触宝-话费充值"); $req->setTradeDesc("触宝-话费充值-100元"); $req->setTotalFee(9980); $req->setExpireTime(""); $req->setAttach("238974128394"); $req->setTradeStr("eyJwYXltZW50VHlwZSI6ICJ3ZWlwYXkifQ=="); $resp = $client->execute($req); echo "<br>" . "transactionId:" . $resp["transactionId"]; echo "<br>" . "tradeStatus:" . $resp["tradeStatus"]; echo "<br>" . "payStr:" . $resp["payStr"];;
异步通知
TradePayResultResponse response = new TradePayResultResponse(); //获取到异步通知请求body response.setBody("{\"tradeSuccessTime\": \"20150709144851\", \"userId\": \"18413076065685074192\", \"sign\": \"aMGgWQ4ZNJ/SJ+gdw56emUiuFNJHhvteozdwrrDLYJ/fMsw9Bm3NUL/jbazpmWqr94nexBryemKRlR63kLt8y7hoKLm11qPNPSJ/ypycrh71wF1/tlLklqcIKAzT49uzeiE5IIp1QtYVwxOt3z0YQVvxA9+VOu3ZybffbmL7eyY=\", \"result\": \"SUCCESS\", \"tradeNo\": \"1158617\", \"notifyTime\": \"20150709144852\", \"tradeService\": \"com.lyancoffee.coffee\", \"tradeCreateTime\": \"20150709144838\", \"charset\": \"UTF-8\", \"attach\": \"\", \"tradeName\": \"\u5496\u5561\u996e\u54c1\u5916\u5356\", \"sellerId\": \"9223229708085022\", \"tradeStatus\": \"TRADE_SUCCESS\", \"tradeDesc\": \"\u62b9\u8336\u661f\u51b0\u4e50\uff08\u65e0\u5496\u5561\u56e0\uff09(\u8d85\u5927\u676f)*1 \", \"totalFee\": 3800, \"timestamp\": 1436424532, \"paymentType\": \"alipay\", \"cashFee\": 3800, \"appkey\": \"7168795595590413\", \"settleFee\": 3800, \"signType\": \"RSA\", \"apiVersion\": \"1.1\", \"transactionId\": \"354cbd6e-5520-4cfb-8a55-e0e4d857f904\", \"notifyId\": \"5d63fb90-f907-4f24-bd5c-80417d5a6816\"}"); assert(SecurityUtils.verifySign(response.getParams(), appsecret, pubKey)); //进行验证签名等操作 System.out.println("paymentType:" + response.getPaymentType()); System.out.println("tradeNo:" + response.getTradeNo()); System.out.println("tradeService:" + response.getTradeService()); System.out.println("tradeName:" + response.getTradeName()); System.out.println("tradeDesc:" + response.getTradeDesc()); System.out.println("totalFee:" + response.getTotalFee()); System.out.println("cashFee:" + response.getCashFee()); System.out.println("settleFee:" + response.getSettleFee()); System.out.println("transactionId:" + response.getTransactionId()); System.out.println("notifyTime:" + response.getNotifyTime().toString()); System.out.println("notifyId:" + response.getNotifyId()); System.out.println("tradeCreateTime:" + response.getTradeCreateTime().toString()); if (response.getTradeSuccessTime() != null) { System.out.println("tradeSuccessTime:" + response.getTradeSuccessTime().toString()); } System.out.println("tradeStatus:" + response.getTradeStatus()); if (response.getAttach() == null) { System.out.println("attach:" + response.getAttach()); }
TradePayResultResponse response = new TradePayResultResponse(); //获取到异步通知请求body response.Body = "{\"userId\": \"9113011628065526464\", \"sign\": \"\", \"result\": \"SUCCESS\", \"tradeNo\": \"No_1434041804\", \"notifyTime\": \"20150612005659\", \"tradeService\": \"sampleService\", \"tradeCreateTime\": \"20150612005644\", \"charset\": \"UTF-8\", \"attach\": null, \"tradeName\": \"sampleTradeName\", \"sellerId\": \"1253748780192040\", \"tradeStatus\": \"TRADE_SUCCESS\", \"tradeDesc\": \"desc\", \"totalFee\": 0.01, \"appKey\": \"31415926\", \"timestamp\": 1434041819, \"tradeSuccessTime\": \"20150612005800\", \"paymentType\": \"alipay\", \"cashFee\": 0.01, \"settleFee\": 0.01, \"signType\": \"RSA\", \"apiVersion\": \"1.1\", \"notifyId\": \"782f07d3-f8c4-4af2-9eb7-3fd022a39d4e\"}"; response.ParseFrom(); if (SecurityUtils.VerifySign(response.Parameters, appSecret, "touchlife_rsa_public_key.pem")) //进行验证签名等操作 { Console.WriteLine("TransactionId:" + response.TransactionId); Console.WriteLine("TradeStatus:" + response.TradeStatus); Console.WriteLine("PayStr:" + response.PayStr); }
//TODO
//获取到异步通知请求body $body = "{\"tradeSuccessTime\": \"20150709144851\", \"userId\": \"18413076065685074192\", \"sign\": \"aMGgWQ4ZNJ/SJ+gdw56emUiuFNJHhvteozdwrrDLYJ/fMsw9Bm3NUL/jbazpmWqr94nexBryemKRlR63kLt8y7hoKLm11qPNPSJ/ypycrh71wF1/tlLklqcIKAzT49uzeiE5IIp1QtYVwxOt3z0YQVvxA9+VOu3ZybffbmL7eyY=\", \"result\": \"SUCCESS\", \"tradeNo\": \"1158617\", \"notifyTime\": \"20150709144852\", \"tradeService\": \"com.lyancoffee.coffee\", \"tradeCreateTime\": \"20150709144838\", \"charset\": \"UTF-8\", \"attach\": \"\", \"tradeName\": \"\u5496\u5561\u996e\u54c1\u5916\u5356\", \"sellerId\": \"9223229708085022\", \"tradeStatus\": \"TRADE_SUCCESS\", \"tradeDesc\": \"\u62b9\u8336\u661f\u51b0\u4e50\uff08\u65e0\u5496\u5561\u56e0\uff09(\u8d85\u5927\u676f)*1 \", \"totalFee\": 3800, \"timestamp\": 1436424532, \"paymentType\": \"alipay\", \"cashFee\": 3800, \"appkey\": \"7168795595590413\", \"settleFee\": 3800, \"signType\": \"RSA\", \"apiVersion\": \"1.1\", \"transactionId\": \"354cbd6e-5520-4cfb-8a55-e0e4d857f904\", \"notifyId\": \"5d63fb90-f907-4f24-bd5c-80417d5a6816\"}" $resp = $client->onResponse($body); //进行验证签名等操作 echo "<br>" . "paymentType:" . $resp["paymentType"]; echo "<br>" . "tradeNo:" . $resp["tradeNo"]; echo "<br>" . "tradeService:" . $resp["tradeService"];; echo "<br>" . "tradeDesc:" . $resp["tradeDesc"];; echo "<br>" . "totalFee:" . $resp["totalFee"];; echo "<br>" . "cashFee:" . $resp["cashFee"];; echo "<br>" . "settleFee:" . $resp["settleFee"];; echo "<br>" . "notifyTime:" . $resp["notifyTime"];; echo "<br>" . "notifyId:" . $resp["notifyId"];; echo "<br>" . "tradeCreateTime:" . $resp["tradeCreateTime"];; echo "<br>" . "tradeSuccessTime:" . $resp["tradeSuccessTime"];; echo "<br>" . "tradeStatus:" . $resp["tradeStatus"]; echo "<br>" . "attach:" . $resp["attach"];;
退款
请求
TouchlifeClient client = new DefaultTouchlifeClient(url, appkey, appsecret, sellerId, prvKey, pubKey); TradeRefundApplyRequest req = new TradeRefundApplyRequest(); req.setUserId("7963331065175620093"); req.setNotifyUrl("http://server.com/refund/callback"); req.setTransactionId("fcfc39e1-ba18-4053-8955-ea692daccc70"); req.setRefundNo("238974128394"); req.setTotalFee(9980); req.setCashFee(9980); req.setRefundFee(9980); TradeRefundApplyResponse response; response = client.execute(req); System.out.println("refundId:" + response.getRefundId()); System.out.println("refundStatus:" + response.getRefundStatus());
DefaultTouchlifeClient client = new DefaultTouchlifeClient(serverUrl, appKey, appSecret, sellerID, "demo_rsa_private_key.pem", "touchlife_rsa_public_key.pem"); var request = new TradeRefundApplyRequest(accessToken); request.UserId = "7963331065175620093"; request.NotifyUrl = "http://server.com/refund/callback"; request.TransactionId = "fcfc39e1-ba18-4053-8955-ea692daccc70"; request.RefundNo = "238974128394" request.TotalFee = 9980; request.CashFee = 9980; request.RefundFee = 9980; var resp = client.Execute<TradeRefundApplyResponse>(request); Console.WriteLine("body:" + resp.Body); Console.WriteLine("RefundId:" + resp.RefundId); Console.WriteLine("RefundStatus:" + resp.RefundStatus);
r = RefundApplyRequest(HOST, PORT) r.userId = "7963331065175620093" r.notifyUrl = "http://server.com/refund/callback" r.transactionId = "fcfc39e1-ba18-4053-8955-ea692daccc70" r.tradeNo = "238974128394" r.totalFee = "9980" r.cashFee = "9980" r.refundFee = "9980" res = r.getResponse() print 'refundId:' + res.get("refundId") print 'refundStatus:' + res.get("refundStatus")
$req = new TradeRefundApplyRequest; $req->setUserId("7963331065175620093"); $req->setNotifyUrl("http://server.com/refund/callback"); $req->setTransactionId("fcfc39e1-ba18-4053-8955-ea692daccc70"); $req->setRefundNo("238974128394"); $req->setTotalFee(9980); $req->setCashFee(9980); $req->setRefundFee(9980); $resp = $client->execute($req); echo "<br>" . "transactionId:" . $resp["refundId"]; echo "<br>" . "tradeStatus:" . $resp["refundStatus"];
异步通知
TradeRefundResultResponse response = new TradeRefundResultResponse(); response.setBody("{\"appkey\": \"1000942281834408\", \"charset\": \"UTF-8\", \"refundFee\": 0.01, \"refundStatus\": \"REFUND_SUCCESS\", \"timestamp\": 1435150403, \"signType\": \"RSA\", \"userId\": 13185231647174833491, \"apiVersion\": \"1.1\", \"refundId\": \"e4d3453a-51d5-4e44-ac6f-b3fb3cdcf765\", \"refundNo\": \"92669893\", \"cashFee\": 0.1, \"result\": \"SUCCESS\", \"sellerId\": \"1253748780192040\", \"transactionId\": \"d5a4cc42-f2a6-4828-a9ef-86bb59dfa3c9\", \"totalFee\": 0.01}"); assert(SecurityUtils.verifySign(response.getParams(), appsecret, pubKey)); //进行验证签名等操作 System.out.println("transactionId:" + response.getTransactionId()); System.out.println("refundNo:" + response.getRefundNo()); System.out.println("refundId:" + response.getRefundId()); System.out.println("totalFee:" + response.getTotalFee()); System.out.println("cashFee:" + response.getCashFee()); System.out.println("refundFee:" + response.getRefundFee()); System.out.println("refundStatus:" + response.getRefundStatus());
TradeRefundApplyResponse response = new TradeRefundApplyResponse(); response.Body = "{\"userId\": \"9113011628065526464\", \"sign\": \"\", \"result\": \"SUCCESS\", \"tradeNo\": \"No_1434041804\", \"notifyTime\": \"20150612005659\", \"tradeService\": \"sampleService\", \"tradeCreateTime\": \"20150612005644\", \"charset\": \"UTF-8\", \"attach\": null, \"tradeName\": \"sampleTradeName\", \"sellerId\": \"1253748780192040\", \"tradeStatus\": \"TRADE_SUCCESS\", \"tradeDesc\": \"desc\", \"totalFee\": 0.01, \"appKey\": \"31415926\", \"timestamp\": 1434041819, \"tradeSuccessTime\": \"20150612005800\", \"paymentType\": \"alipay\", \"cashFee\": 0.01, \"settleFee\": 0.01, \"signType\": \"RSA\", \"apiVersion\": \"1.1\", \"notifyId\": \"782f07d3-f8c4-4af2-9eb7-3fd022a39d4e\"}"; response.ParseFrom(); if (SecurityUtils.VerifySign(response.Parameters, appSecret, "touchlife_rsa_public_key.pem")) //进行验证签名等操作 { Console.WriteLine("TransactionId:" + response.TransactionId); Console.WriteLine("RefundNo:" + response.RefundNo); Console.WriteLine("RefundId:" + response.RefundId); Console.WriteLine("TotalFee:" + response.TotalFee); Console.WriteLine("CashFee:" + response.CashFee); Console.WriteLine("RefundFee:" + response.RefundFee); Console.WriteLine("RefundStatus:" + response.RefundStatus); }
//TODO
$body = "{\"appkey\": \"1000942281834408\", \"charset\": \"UTF-8\", \"refundFee\": 0.01, \"refundStatus\": \"REFUND_SUCCESS\", \"timestamp\": 1435150403, \"signType\": \"RSA\", \"userId\": 13185231647174833491, \"apiVersion\": \"1.1\", \"refundId\": \"e4d3453a-51d5-4e44-ac6f-b3fb3cdcf765\", \"refundNo\": \"92669893\", \"cashFee\": 0.1, \"result\": \"SUCCESS\", \"sellerId\": \"1253748780192040\", \"transactionId\": \"d5a4cc42-f2a6-4828-a9ef-86bb59dfa3c9\", \"totalFee\": 0.01}"; $resp = $client->onResponse($body); echo "<br>" . "transactionId:" . $resp["transactionId"]; echo "<br>" . "refundNo:" . $resp["refundNo"]; echo "<br>" . "refundId:" . $resp["refundId"];; echo "<br>" . "totalFee:" . $resp["totalFee"];; echo "<br>" . "cashFee:" . $resp["cashFee"];; echo "<br>" . "refundFee:" . $resp["refundFee"]; echo "<br>" . "refundStatus:" . $resp["refundStatus"];;
订单回传
TouchlifeClient client = new DefaultTouchlifeClient(url, appkey, appsecret, sellerId, prvKey, pubKey); OrderOrderPushRequest req = new OrderOrderPushRequest(); req.setUserId("7963331065175620093"); req.setOrderId("238974128394"); req.setOrderService("com.company.product"); req.setOrderTitle("触宝-话费充值"); req.setOrderShortInfo("触宝-话费充值-100元"); req.setOrderStatus("充值成功"); req.setOrderCreateTime(new Date(System.currentTimeMillis())); req.setOrderFinishTime(new Date(System.currentTimeMillis())); req.setOrderUrl("http://chubao.cn/orderdetail?id=238974128394"); req.setAttach("{\"received_code\": \"439289\"}"); OrderOrderPushResponse response; response = client.execute(req);
DefaultTouchlifeClient client = new DefaultTouchlifeClient(serverUrl, appKey, appSecret, sellerID, prvKey, pubKey); var request = new OrderOrderPushRequest(accessToken); request.UserId = "7963331065175620093"; request.OrderId = "238974128394" request.OrderService = "com.company.product"; request.OrderTitle = "触宝-话费充值"; request.OrderShortInfo = "触宝-话费充值-100元"; request.OrderStatus = "充值成功"; request.OrderCreateTime = DateTime.Now; request.OrderFinishTime = DateTime.Now; request.OrderUrl = "http://chubao.cn/orderdetail?id=238974128394"; request.Attach = "{\"received_code\": \"439289\"}" var resp = client.Execute<OrderOrderPushResponse>(request); Console.WriteLine("body:" + resp.Body);
order_push = OrderPushRequest(HOST, PORT) order_push.userId = "7963331065175620093" order_push.orderId = "238974128394" order_push.orderService = "com.company.product" order_push.orderTitle = "触宝-话费充值" order_push.orderShortInfo = "触宝-话费充值-100元" order_push.orderStatus = "充值成功" order_push.orderCreateTime = "" order_push.orderFinishTime = "" order_push.orderUrl = "http://chubao.cn/orderdetail?id=238974128394"; order_push.attach = "{\"received_code\": \"439289\"}"; res = order_push.getResponse()
$req = new OrderOrderPushRequest; $req->setUserId("7963331065175620093"); $req->setOrderId("238974128394"); $req->setOrderService("com.company.product"); $req->setOrderTitle("触宝-话费充值"); $req->setOrderShortInfo("触宝-话费充值-100元"); $req->setOrderStatus("充值成功"); $req->setOrderCreateTime(""); $req->setOrderFinishTime(""); $req->setOrderUrl("http://chubao.cn/orderdetail?id=238974128394"); $req->setAttach("{\"received_code\": \"439289\"}"); $resp = $client->execute($req);