68

海关179公告对接工作记录(上海公服提供加签服务)

 2 years ago
source link: https://github.com/speauty/junior.developer/blob/fd6e4c811977bdf296a3ab2e2951ac98467625fc/%E6%B5%B7%E5%85%B3179%E5%85%AC%E5%91%8A%E5%AF%B9%E6%8E%A5%E5%B7%A5%E4%BD%9C%E8%AE%B0%E5%BD%95(%E4%B8%8A%E6%B5%B7%E5%85%AC%E6%9C%8D%E5%8A%A0%E7%AD%BE).md
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

### 海关179公告对接工作记录(上海公服提供加签服务)

------

- #### 对接流程

1. 申请公服179测试接口 附件表格及盖章扫描件;

2. 搜集对应订单数据进行加签;

3. 申请加签证书 附件申请书及盖章扫描件;

4. 向海关相关人员申请注册测试环境 需要证书 sign.cer 及编号等信息;

5. 申请公服179正式接口 附件表格及盖章扫描件

6. 线上注册部署的回调接口--正式环境

- 审核机制

> 系统随机抽查企业三天内的通关清单订单号,发送给企业,企业接收到返回10000为审核通过

- 审核不通过

>企业收到调用返回的不是10000;企业三天内没有订单数据;端口需要80;是否配置白名单

- 审核通过后,配置公服正式加签接口和上传海关支付数据的正式接口并启用

- #### 注意事项

- /和中文不转义!!!/和中文不转义!!!/和中文不转义!!!

- 参数必须全部由并且顺序必须保持一致;

- 参数尽量不留空值,如果实在找不到可选值就填其他;

- 上传海关验签的 serviceTime 是字符串类型;

- 部署给海关回调api需要响应数据,message留空为正常返回!!!

``` {"code":"10000","message":"","serviceTime":1553870293676} ```

- 海关回调通知数据 标准 json 字符串

``` { "openReq":{ "sessionID":"D03738BA-EEAF-457C-A7FE-352DB70D59F6", "orderNo":"2019032029555", "serviceTime":1553139142649 } } ```

- #### 相关接口

1. 公服179测试加签地址 http://test.shcepp.com:18080/signinf/ceppSignInter

2. 公服179正式加签地址 http://www.shcepp.com/cepsi/ceppSignInter

3. 海关上传支付实时数据测试地址 https://swapptest.singlewindow.cn/ceb2grab/grab/realTimeDataUpload

4. 海关上传支付实时数据正式地址 https://customs.chinaport.gov.cn/ceb2grab/grab/realTimeDataUpload

5. 正式环境注册地址 https://ceb1.chinaport.gov.cn

- #### 测试数据

1. 请求公服加签

``` SH-ED (原始EData) {"version":"1.0","commitTime":"20190329223808","cusName":"公司名称","cusCode":"公司海关注册编码","serialNumber":"123456789","Token":"公服提供的TOKEN"} SH-PE (原始payExInfoStr) {"sessionID":"9BfC-8fs-4AsEsss4-8ss3e2-7sa4f","payExchangeInfoHead":{"guid":"CXDGRA9IYYZMBZVRD6GQKF3LDI6","initalRequest":"test","initalResponse":"test","ebpCode":"5107964194","payCode":"312226T001","payTransactionId":"2019010100100","totalAmount":1,"currency":"142","verDept":3,"payType":"4","tradingTime":"20190329223808","note":"note"},"payExchangeInfoLists":[{"orderNo":"2019032204565463","goodsInfo":[{"gname":"测试商品","itemLink":"xxxx"}],"recpAccount":"公司收款账户","recpCode":"统一社会信用代码","recpName":"公司名称"}]} 经过 json_encode(JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE ) -> base64_encode -> urlencode 处理后 SH-MED eyJ2ZXJzaW9uIjoiMS4wIiwiY29tbWl0VGltZSI6IjIwMTkwMzI5MjIzODA4IiwiY3VzTmFtZSI6Iue7temYs%2BWFsOeOpeWVhui0uOaciemZkOWFrOWPuCIsImN1c0NvZGUiOiI1MTA3OTY0MTk0Iiwic2VyaWFsTnVtYmVyIjoiMTIzNDU2Nzg5IiwiVG9rZW4iOiJybTRjVDBkZDU1eDgxVTBtbzk1czdCQzcySGg2SzYyMSJ9 SH-MPE eyJzZXNzaW9uSUQiOiI5QmZDLThmcy00QXNFc3NzNC04c3MzZTItN3NhNGYiLCJwYXlFeGNoYW5nZUluZm9IZWFkIjp7Imd1aWQiOiJDWERHUkE5SVlZWk1CWlZSRDZHUUtGM0xESTYiLCJpbml0YWxSZXF1ZXN0IjoidGVzdCIsImluaXRhbFJlc3BvbnNlIjoidGVzdCIsImVicENvZGUiOiI1MTA3OTY0MTk0IiwicGF5Q29kZSI6IjMxMjIyNlQwMDEiLCJwYXlUcmFuc2FjdGlvbklkIjoiMjAxOTAxMDEwMDEwMCIsInRvdGFsQW1vdW50IjoxLCJjdXJyZW5jeSI6IjE0MiIsInZlckRlcHQiOjMsInBheVR5cGUiOiI0IiwidHJhZGluZ1RpbWUiOiIyMDE5MDMyOTIyMzgwOCIsIm5vdGUiOiJub3RlIn0sInBheUV4Y2hhbmdlSW5mb0xpc3RzIjpbeyJvcmRlck5vIjoiMjAxOTAzMjIwNDU2NTQ2MyIsImdvb2RzSW5mbyI6W3siZ25hbWUiOiLmtYvor5XllYblk4EiLCJpdGVtTGluayI6Inh4eHgifV0sInJlY3BBY2NvdW50IjoiMTI5MzU3NzM5MjM2IiwicmVjcENvZGUiOiI5MTUxMDcyNk1BNjRHTUNZM00iLCJyZWNwTmFtZSI6Iue7temYs%2BWFsOeOpeWVhui0uOaciemZkOWFrOWPuCJ9XX0%3D 使用curl发起请求 curl -v -H "Content-Type:application/x-www-form-urlencoded" -X POST --data "EData=eyJ2ZXJzaW9uIjoiMS4wIiwiY29tbWl0VGltZSI6IjIwMTkwMzI5MjIzODA4IiwiY3VzTmFtZSI6Iue7temYs%2BWFsOeOpeWVhui0uOaciemZkOWFrOWPuCIsImN1c0NvZGUiOiI1MTA3OTY0MTk0Iiwic2VyaWFsTnVtYmVyIjoiMTIzNDU2Nzg5IiwiVG9rZW4iOiJybTRjVDBkZDU1eDgxVTBtbzk1czdCQzcySGg2SzYyMSJ9&payExInfoStr=eyJzZXNzaW9uSUQiOiI5QmZDLThmcy00QXNFc3NzNC04c3MzZTItN3NhNGYiLCJwYXlFeGNoYW5nZUluZm9IZWFkIjp7Imd1aWQiOiJDWERHUkE5SVlZWk1CWlZSRDZHUUtGM0xESTYiLCJpbml0YWxSZXF1ZXN0IjoidGVzdCIsImluaXRhbFJlc3BvbnNlIjoidGVzdCIsImVicENvZGUiOiI1MTA3OTY0MTk0IiwicGF5Q29kZSI6IjMxMjIyNlQwMDEiLCJwYXlUcmFuc2FjdGlvbklkIjoiMjAxOTAxMDEwMDEwMCIsInRvdGFsQW1vdW50IjoxLCJjdXJyZW5jeSI6IjE0MiIsInZlckRlcHQiOjMsInBheVR5cGUiOiI0IiwidHJhZGluZ1RpbWUiOiIyMDE5MDMyOTIyMzgwOCIsIm5vdGUiOiJub3RlIn0sInBheUV4Y2hhbmdlSW5mb0xpc3RzIjpbeyJvcmRlck5vIjoiMjAxOTAzMjIwNDU2NTQ2MyIsImdvb2RzSW5mbyI6W3siZ25hbWUiOiLmtYvor5XllYblk4EiLCJpdGVtTGluayI6Inh4eHgifV0sInJlY3BBY2NvdW50IjoiMTI5MzU3NzM5MjM2IiwicmVjcENvZGUiOiI5MTUxMDcyNk1BNjRHTUNZM00iLCJyZWNwTmFtZSI6Iue7temYs%2BWFsOeOpeWVhui0uOaciemZkOWFrOWPuCJ9XX0%3D" "http://test.shcepp.com:18080/signinf/ceppSignInter" HTTP REQUEST POST http://test.shcepp.com:18080/signinf/ceppSignInter HTTP/1.1 User-Agent: curl/7.29.0 Host:test.shcepp.com:18080 Content-Type: application/x-www-form-urlencoded Content-Length: 1213 EData=eyJ2ZXJzaW9uIjoiMS4wIiwiY29tbWl0VGltZSI6IjIwMTkwMzI5MjIzODA4IiwiY3VzTmFtZSI6Iue7temYs%2BWFsOeOpeWVhui0uOaciemZkOWFrOWPuCIsImN1c0NvZGUiOiI1MTA3OTY0MTk0Iiwic2VyaWFsTnVtYmVyIjoiMTIzNDU2Nzg5IiwiVG9rZW4iOiJybTRjVDBkZDU1eDgxVTBtbzk1czdCQzcySGg2SzYyMSJ9&payExInfoStr=eyJzZXNzaW9uSUQiOiI5QmZDLThmcy00QXNFc3NzNC04c3MzZTItN3NhNGYiLCJwYXlFeGNoYW5nZUluZm9IZWFkIjp7Imd1aWQiOiJDWERHUkE5SVlZWk1CWlZSRDZHUUtGM0xESTYiLCJpbml0YWxSZXF1ZXN0IjoidGVzdCIsImluaXRhbFJlc3BvbnNlIjoidGVzdCIsImVicENvZGUiOiI1MTA3OTY0MTk0IiwicGF5Q29kZSI6IjMxMjIyNlQwMDEiLCJwYXlUcmFuc2FjdGlvbklkIjoiMjAxOTAxMDEwMDEwMCIsInRvdGFsQW1vdW50IjoxLCJjdXJyZW5jeSI6IjE0MiIsInZlckRlcHQiOjMsInBheVR5cGUiOiI0IiwidHJhZGluZ1RpbWUiOiIyMDE5MDMyOTIyMzgwOCIsIm5vdGUiOiJub3RlIn0sInBheUV4Y2hhbmdlSW5mb0xpc3RzIjpbeyJvcmRlck5vIjoiMjAxOTAzMjIwNDU2NTQ2MyIsImdvb2RzSW5mbyI6W3siZ25hbWUiOiLmtYvor5XllYblk4EiLCJpdGVtTGluayI6Inh4eHgifV0sInJlY3BBY2NvdW50IjoiMTI5MzU3NzM5MjM2IiwicmVjcENvZGUiOiI5MTUxMDcyNk1BNjRHTUNZM00iLCJyZWNwTmFtZSI6Iue7temYs%2BWFsOeOpeWVhui0uOaciemZkOWFrOWPuCJ9XX0%3D HTTP RESPONSE HTTP/1.1 200 OK Server: SingleWindow Date: Fri, 29 Mar 2019 14:40:29 GMT X-Application-Context: application:8094 Connection: close Transfer-Encoding: chunked Content-Type: text/plain; charset=UTF-8 {"msg":"","certNo":"0101000000001ed3","code":"","serialNumber":"DV2F6LF2-C922-PW2Y-88T9-7CWA80N30RSA","serviceTime":1553870429821,"signValue":"f2CxV49Exsysehchq8tohnxhLJk9dz5TepjpYUh6PaV7Z2eCTCp+FGHlIBvo4VRZitjhdsuDhFowRFx2/eARyKxMgYudsKtUzq7WmAE6KZgzktf0HnaNW5RBurR9uh5ZKS4FTdpAdXeBYw1xKYmkZkcmpdTXHixErAIS8qjh1eg=","status":"success"} ```

2. 上传海关验签

``` 将请求公服加签成功结果中的serialNumber、certNo、signValue追加到请求公服原始payExInfoStr中 经过 json_encode(JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE) 处理 请求海关原始payExInfoStr {"sessionID":"9BfC-8fs-4AsEs4-8ss3e2-7sa4f","payExchangeInfoHead":{"guid":"BLVKUL07LDDPLF7QLBT3RRFCRIA","initalRequest":"test","initalResponse":"test","ebpCode":"5107964194","payCode":"312226T001","payTransactionId":"2019010100100","totalAmount":1,"currency":"142","verDept":3,"payType":"4","tradingTime":"20190329205700","note":"note"},"payExchangeInfoLists":[{"orderNo":"2019032204565463","goodsInfo":[{"gname":"测试商品","itemLink":"xxxx"}],"recpAccount":"公司收款账户","recpCode":"统一社会信用代码","recpName":"公司名称"}],"serviceTime":"1553864225312","certNo":"0101000000001ed3","signValue":"eVVR/1Py26f0RAINSRjcTl3UZD76DjDER7YvvhklHjtGO1Ip+UPM/AvX0A/YB6+vAZSA+9rYR4CG0UR5bGhrmVN+QIdimRj30qGDVIGXvx1hkcv5tCtd4lxr7JUWgsSW47+EALQQQfgAupN/F0taTo26xVzE0uLw2PDYEKoRwt8="} {"sessionID":"9BfC-8fs-4AsEsss4-8ss3e2-7sa4f","payExchangeInfoHead":{"guid":"CXDGRA9IYYZMBZVRD6GQKF3LDI6","initalRequest":"test","initalResponse":"test","ebpCode":"5107964194","payCode":"312226T001","payTransactionId":"2019010100100","totalAmount":1,"currency":"142","verDept":3,"payType":"4","tradingTime":"20190329223808","note":"note"},"payExchangeInfoLists":[{"orderNo":"2019032204565463","goodsInfo":[{"gname":"测试商品","itemLink":"xxxx"}],"recpAccount":"公司收款账户-银行卡号","recpCode":"统一社会信用代码","recpName":"公司名称"}],"serviceTime":"1553870293676","certNo":"0101000000001ed3","signValue":"RaXwjf7xnbGkkTSfMS1lGXppe1DhASl6/gyxScmGqpUH244EwRy2NwqiBWFTnIGap81pOBX6GE0T7ozqi2GvMjzy8mDKE+vxQ3SK6cuyM9y0yf5bwvFbBYG3GOe+YeuGU8dD2tdKBihM1NXXNYxX+eo/C3nRVRQ8fWONOX4DYWo="} 经过 urlencode 后 %7B%22sessionID%22%3A%229BfC-8fs-4AsEsss4-8ss3e2-7sa4f%22%2C%22payExchangeInfoHead%22%3A%7B%22guid%22%3A%22CXDGRA9IYYZMBZVRD6GQKF3LDI6%22%2C%22initalRequest%22%3A%22test%22%2C%22initalResponse%22%3A%22test%22%2C%22ebpCode%22%3A%225107964194%22%2C%22payCode%22%3A%22312226T001%22%2C%22payTransactionId%22%3A%222019010100100%22%2C%22totalAmount%22%3A1%2C%22currency%22%3A%22142%22%2C%22verDept%22%3A3%2C%22payType%22%3A%224%22%2C%22tradingTime%22%3A%2220190329223808%22%2C%22note%22%3A%22note%22%7D%2C%22payExchangeInfoLists%22%3A%5B%7B%22orderNo%22%3A%222019032204565463%22%2C%22goodsInfo%22%3A%5B%7B%22gname%22%3A%22%E6%B5%8B%E8%AF%95%E5%95%86%E5%93%81%22%2C%22itemLink%22%3A%22xxxx%22%7D%5D%2C%22recpAccount%22%3A%22129357739236%22%2C%22recpCode%22%3A%2291510726MA64GMCY3M%22%2C%22recpName%22%3A%22%E7%BB%B5%E9%98%B3%E5%85%B0%E7%8E%A5%E5%95%86%E8%B4%B8%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%22%7D%5D%2C%22serviceTime%22%3A%221553870293676%22%2C%22certNo%22%3A%220101000000001ed3%22%2C%22signValue%22%3A%22RaXwjf7xnbGkkTSfMS1lGXppe1DhASl6%2FgyxScmGqpUH244EwRy2NwqiBWFTnIGap81pOBX6GE0T7ozqi2GvMjzy8mDKE%2BvxQ3SK6cuyM9y0yf5bwvFbBYG3GOe%2BYeuGU8dD2tdKBihM1NXXNYxX%2Beo%2FC3nRVRQ8fWONOX4DYWo%3D%22%7D HTTP REQUEST POST https://swapptest.singlewindow.cn/ceb2grab/grab/realTimeDataUpload HTTP/1.1 User-Agent: Fiddler Content-Type: application/x-www-form-urlencoded Host: swapptest.singlewindow.cn Content-Length: 1213 payExInfoStr=%7B%22sessionID%22%3A%229BfC-8fs-4AsEsss4-8ss3e2-7sa4f%22%2C%22payExchangeInfoHead%22%3A%7B%22guid%22%3A%22CXDGRA9IYYZMBZVRD6GQKF3LDI6%22%2C%22initalRequest%22%3A%22test%22%2C%22initalResponse%22%3A%22test%22%2C%22ebpCode%22%3A%225107964194%22%2C%22payCode%22%3A%22312226T001%22%2C%22payTransactionId%22%3A%222019010100100%22%2C%22totalAmount%22%3A1%2C%22currency%22%3A%22142%22%2C%22verDept%22%3A3%2C%22payType%22%3A%224%22%2C%22tradingTime%22%3A%2220190329223808%22%2C%22note%22%3A%22note%22%7D%2C%22payExchangeInfoLists%22%3A%5B%7B%22orderNo%22%3A%222019032204565463%22%2C%22goodsInfo%22%3A%5B%7B%22gname%22%3A%22%E6%B5%8B%E8%AF%95%E5%95%86%E5%93%81%22%2C%22itemLink%22%3A%22xxxx%22%7D%5D%2C%22recpAccount%22%3A%22129357739236%22%2C%22recpCode%22%3A%2291510726MA64GMCY3M%22%2C%22recpName%22%3A%22%E7%BB%B5%E9%98%B3%E5%85%B0%E7%8E%A5%E5%95%86%E8%B4%B8%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%22%7D%5D%2C%22serviceTime%22%3A%221553870293676%22%2C%22certNo%22%3A%220101000000001ed3%22%2C%22signValue%22%3A%22RaXwjf7xnbGkkTSfMS1lGXppe1DhASl6%2FgyxScmGqpUH244EwRy2NwqiBWFTnIGap81pOBX6GE0T7ozqi2GvMjzy8mDKE%2BvxQ3SK6cuyM9y0yf5bwvFbBYG3GOe%2BYeuGU8dD2tdKBihM1NXXNYxX%2Beo%2FC3nRVRQ8fWONOX4DYWo%3D%22%7D HTTP RESPONSE HTTP/1.1 200 OK Server: SingleWindow Date: Fri, 29 Mar 2019 12:48:41 GMT Content-Type: text/html;charset=UTF-8 Connection: keep-alive Content-Length: 79 {"code":"10000","message":"上传成功","total":0,"serviceTime":1553865245519} ```

3. 不要忘了最后响应海关的回调,否则会审核失败的哦

``` {"code":"10000","message":"","serviceTime":1553870293676} ```

- #### PHP源码版 ``` <?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/5/19 0019 * Time: 06:34 */

namespace app\lib\service;

class Customs { private $version = '1.0'; private $cusName = ''; // 海关备案名称 private $cusCode = ''; // 海关备案编码 private $ebpCode = ''; // 电商平台代码 private $recpAccount = ''; // 收款账号 private $recpCode = ''; // 收款企业代码 private $recpName = ''; // 收款企业名称 private $token = ''; // 当前使用的token private $upload = 'https://customs.chinaport.gov.cn/ceb2grab/grab/realTimeDataUpload'; // 当前上传支付数据地址 private $makeSign = 'http://www.shcepp.com/cepsi/ceppSignInter'; // 公服正式加签地址

private $orderNo = '201901011200005'; private $sessionID = '123465789'; private $serviceTime = '123465789';

private $defaultOrderData = [ 'order_sn' => '201901011200005', 'product' => [ [ 'gname' => '测试商品', 'itemLink' => 'http://www.baidu.com/' ] ], 'pay' => [ 'pay_type' => 1, 'pay_amount' => 52.02, 'pay_initial_request' => 'xxoo', 'pay_initial_response' => 'xxoo', 'pay_time' => '2019-01-01 11:59:58', 'origin_type' => '3', 'out_trade_no' => '456789132456' ] ];

// 构造EData数据包 private function buildEData() { return [ 'version' => $this->version, 'commitTime' => date('YmdHis', time()), 'cusName' => $this->cusName, 'cusCode' => $this->cusCode, 'serialNumber' => $this->orderNo, 'Token' => $this->token ]; }

public function UUID() { if (function_exists('com_create_guid') === true) { return trim(com_create_guid(), '{}'); }

return sprintf( '%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535) ); }

/** * @param $url * @param null $data * @param int $isGet * @param array $header * @return bool|string */ private function createRequest($url, $data = null, $isGet = 1) { $curl = curl_init(); if ($isGet) { // 如果设置有数据 则拼接在请求地址中 需要检测当前url 是否拼接有数据 if (!empty($data)) { $queryStr = http_build_query($data); if (strpos($url, '?')) { $url .= $queryStr; } else { $url .= '?'.$queryStr; } } } else { curl_setopt($curl, CURLOPT_POST, 1); (!empty($data)) && (curl_setopt($curl, CURLOPT_POSTFIELDS, $data)); } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($header)) curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/x-www-form-urlencoded' ]);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; }

/** * 创建payExchangeInfoHead 结果集属性描述 * 15089 */ function createPayExchangeInfoHead($order, $guid) { $payCodeSets = array( 1 => '31222699S7', // 支付宝支付 2 => '4403169D3W' // 微信支付 ); $structArr = array( 'guid' => $guid, 'initalRequest' => $order['pay']['pay_initial_request'], 'initalResponse' => $order['pay']['pay_initial_response'], 'ebpCode' => $this->ebpCode, 'payCode' => $payCodeSets[$order['pay']['pay_type']], 'payTransactionId' => $order['pay']['out_trade_no'], 'totalAmount' => floatval($order['pay']['pay_amount']), 'currency' => '142', 'verDept' => 3, 'payType' => $order['pay']['origin_type']==3?'3':'2', 'tradingTime' => strval(date('YmdHis', strtotime($order['pay']['pay_time']))), 'note' => 'note' );

return $structArr; }

private function createPayExchangeInfoList($order) { $structArr = array( 'orderNo' => $this->orderNo, // 订单编号 'goodsInfo' => $order['product'], // 商品明细 'recpAccount' => $this->recpAccount, // 收款账号 'recpCode' => $this->recpCode, // 收款企业代码 'recpName' => $this->recpName, // 收款企业名称 );

return $structArr; }

private function buildQueryParam($order) { $guid = $this->UUID(); // 构建EData数据包 $EData = $this->buildEData(); $payExInfoStr = [ 'sessionID' => $this->sessionID, 'payExchangeInfoHead' => $this->createPayExchangeInfoHead($order, $guid), 'payExchangeInfoLists' => [$this->createPayExchangeInfoList($order)] ]; $EData = urlencode(base64_encode(json_encode($EData,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE))); $payExInfoStrStored = urlencode(base64_encode(json_encode($payExInfoStr,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE))); $ret = $this->createRequest('http://www.shcepp.com/cepsi/ceppSignInter', 'EData='.$EData.'&payExInfoStr='.$payExInfoStrStored, 0); $ret = json_decode($ret, true); $payExInfoStr['serviceTime'] = strval($ret['serviceTime']); $payExInfoStr['certNo'] = $ret['certNo']; $payExInfoStr['signValue'] = $ret['signValue']; return $payExInfoStr; }

public function responseToUpload($openReq, $order) { $this->orderNo = $openReq['orderNo']; $this->sessionID = $openReq['sessionID']; $this->serviceTime = $openReq['serviceTime']; if (!$order) $order = $this->defaultOrderData; $params = $this->buildQueryParam($order); $serviceTime = $params['serviceTime']; $back['serviceTime'] = $serviceTime; $ret = $this->createRequest($this->upload, 'payExInfoStr='.urlencode(json_encode($params, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE)), 0); $ret = json_decode($ret, true); if ($ret['code'] != '10000') { return $ret['message']; } return ""; } } ```


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK