一、PC配置
1. 在PC上下载并运行Charles
请官网下载。最新版本即可。
请在网络上自行查找注册码。
2. Charles -> Tools菜单配置
2.1. 在Rewrite 中导入下面的配置文件,并且勾选Enable Rewrite
将下述内容保存为文件:Rewrite_Sandbox.xml
<?xml version='1.0' encoding='UTF-8' ?>
<?charles serialisation-version='2.0' ?>
<rewriteSets>
<rewriteSet>
<active>true</active>
<name>沙箱环境url替换</name>
<hosts>
<locationPatterns>
<locationMatch>
<location>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
<path>/gateway/bnpl/tpl/loan</path>
</location>
</locationMatch>
</locationPatterns>
</hosts>
<rules>
<rewriteRule>
<active>true</active>
<ruleType>6</ruleType>
<matchValue>http://paylater-sandbox.didiglobal.com/gateway/bnpl/tpl/loan</matchValue>
<matchValueRegex>true</matchValueRegex>
<matchRequest>true</matchRequest>
<newValue>http://paylater-sandbox.didiglobal.com/freya-gateway/bnpl/tpl/loan</newValue>
<caseSensitive>false</caseSensitive>
<replaceType>2</replaceType>
</rewriteRule>
</rules>
</rewriteSet>
<rewriteSet>
<active>true</active>
<name>独立端onlink</name>
<hosts>
<locationPatterns>
<locationMatch>
<location>
<host>api.didiglobal.com</host>
<path>/\*?\*</path>
</location>
</locationMatch>
</locationPatterns>
</hosts>
<rules>
<rewriteRule>
<active>true</active>
<ruleType>7</ruleType>
<matchValue>com.didiglobal.cashloan.inhouse</matchValue>
<matchValueRegex>true</matchValueRegex>
<matchRequest>true</matchRequest>
<newValue>com.didiglobal.cashloan</newValue>
<caseSensitive>false</caseSensitive>
<replaceType>2</replaceType>
</rewriteRule>
</rules>
</rewriteSet>
</rewriteSets>
效果如下:

2.2. 在Map Remote中配置下面的内容(导入可能会报错,需要一个一个配置),并且勾选Enable Map Remote
如果想尝试整体导入,可以将下述内容(和上面表格内容相同,只是格式为XML)保存为文件:MapRemote_Sandbox.xml,然后导入。
<?xml version='1.0' encoding='UTF-8' ?>
<?charles serialisation-version='2.0' ?>
<map>
<mappings>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>manhattan-app.didiglobal.com</host>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>hermes.didifinance.com</host>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>pay.didiglobal.com</host>
<port>443</port>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>epassport.didiglobal.com</host>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>didi-paga-despues.didiglobal.com</host>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
<path>/gateway/bnpl/tpl/loan</path>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
<path>/freya-gateway/bnpl/tpl/loan</path>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>hermes.didiglobal.com</host>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>didi-paga-despues.didifinance.com</host>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
<mapMapping>
<sourceLocation>
<protocol>https</protocol>
<host>risk-pay.didifinance.com</host>
<port>443</port>
</sourceLocation>
<destLocation>
<protocol>http</protocol>
<host>paylater-sandbox.didiglobal.com</host>
</destLocation>
</mapMapping>
</mappings>
</map>
效果如下:

2.3. Enable之后的菜单效果如下图

3. 在电脑上安装证书
按照下述菜单操作。

4. Charles -> Proxy 菜单配置

请将SSL Proxy配置如下:

二、测试手机配置
1. 如果是安卓手机,则必须安装Google Mobile Services
2. 在测试手机上安装Charles证书。
介绍以下两种方式:(建议两种方式先都看下,不着急操作,有可能方式二更适合)
方式一:局域网内下载
a. 确保电脑和手机在同一个局域网
b. 找出Charles的IP(实际上就是电脑在局域网的IP)和端口(Charles使用的端口,默认8888)
在Charles打开如下菜单:


c. 下载证书
根据上面这个提示框中的说明步骤,打开手机的「无线网络」,然后在「无线网络」的「代理」设置中打开「手动」设置,然后设置IP和端口为消息框中的数值,保存退出。打开手机的浏览器,输入 chls.pro/ssl。
如果这种方法不可行,试用方法二。
方式二:文件传输
a. 下载证书到电脑本地
打开下面的菜单,保存证书到电脑本地。

b. 传输证书到手机
可以通过数据线推送,或者通信软件发送,或者蓝牙等等等等方式传输证书到手机上,然后安装证书。
3. 安装DiDi Finanazas App安装包
DiDi通过大文件外发平台发送Android/iOS安装包,请留意查收来自DiDi的邮件,样例如下。请留意文件下载有效期。

4. 安装定位模拟软件(可选)
可以先不安装。
如果在使用DiDi Finanazas App过程中强制墨西哥IP,则必须安装定位模拟软件。
开启开发者模式,然后设置定位:19.434351,-99.13311
三、使用DiDi Finanazas App扫描二维码
3.1 PC端商城下单
用户在商户的PC端商城下单,在收银台选择DiDi Paga Después,打开DiDi二维码页面(有线程会定时查询订单支付状态,F12开发者模式可查看)。

3.2 手机的无线网络代理配置
打开手机的「无线网络」,然后在「无线网络」的「代理」设置中打开「手动」设置,然后设置IP和端口为Charles的IP和端口,保存退出。
此时Charles会开始路由请求和响应。
3.3 使用DiDi Finanazas App完成支付
根据页面上左侧提示的步骤,使用DiDi Finanazas App扫描二维码,继续完成后续流程。
四、查找短信验证码
当遇到短信验证码页面时,

查找接口名称为 codeMT 的API(此处以电脑F12示例,Charles上同理,一般为最下面的API),然后把下面两个字段的值发给DiDi查找验证码:
colored-didi-header-rid
didi-header-rid

五、验收标准 (Acceptance Criteria)
1. 用户安装 DiDi Finanazas 安装包后,扫描PC端二维码可 100% 成功进入DiDi支付页面。
2. 在DiDi支付页面操作成功或取消后,PC端二维码页面可无缝回跳至商户商城页面。