京东的sdk忍不住要吐槽一下,引用了太多第三方,第一次用折腾了好长时间。
京东的订单解密需要另外一套sdk,真是~~
然后就是对接文档
再吐槽一下,京东的订单解密虚拟号需要在京麦购买虚拟号包,不过也不贵,100买7000条(好像是)。
为了提高订单的实时性,同样需要接入socket,京东提供了http的sdk(java不精通),while循环读取消息,读取到消息后再请求订单系统的接口,更新订单即可
$jcq = new JdMQ();
$topics=[
'open_message_order_order_create_3FE941155832FACCF936D7B0180457B4',
'open_message_order_order_cancel_3FE941155832FACCF936D7B0180457B4',
'open_message_pop_order_remk_chg_3FE941155832FACCF936D7B0180457B4',
'open_message_ORDER_ADDR_MODIFY_3FE941155832FACCF936D7B0180457B4',
'open_message_order_order_out_3FE941155832FACCF936D7B0180457B4',
'open_message_pop_order_change_3FE941155832FACCF936D7B0180457B4',
'open_message_cancel_order_audit_result_jos_3FE941155832FACCF936D7B0180457B4',
'open_message_order_order_finish_3FE941155832FACCF936D7B0180457B4',
'open_message_order_order_pay_3FE941155832FACCF936D7B0180457B4',
'open_message_pop_order_out_3FE941155832FACCF936D7B0180457B4',
'open_message_pop_order_create_3FE941155832FACCF936D7B0180457B4',
];
$index=0;
while(true) {
echo $topics[$index]."\n";
echo date('Y-m-d H:i:s')."\n";
$topic='568091687201$Default$'.$topics[$index];
$pullResult = $jcq->ct_order_create($topic);
if($pullResult["result"]&&$pullResult["result"]["messages"]){
//notify是后加的更新订单系统的函数
$jcq->notify($pullResult["result"]);
}
if($pullResult["result"]["ackIndex"]){
print_r($pullResult);
$ackResult=$jcq->success_ct_order_create($pullResult["result"]["ackIndex"],$topic);
print_r($ackResult);
}
$index++;
if($index==count($topics)){
$index=0;
exit;
}
}
另外,京东的消息据说只能云鼎内才能用(没有尝试鼎外读取),所以需要买一个京东云鼎的服务器。这个服务器我放了京东的、淘宝的、拼多多的socket,物尽其用。
在服务器上装了宝塔,宝塔装一个进程守护管理器
京东的是php,用php JCQ_demo.php
淘宝的nodejs,用xxxx/node xxx.js
拼多多的我改的js,用的也是xxxx/node xxx.js